2016-03-15 5 views
0

У меня проблема, копируя и вставляя фигуру в тот же файл Excel.копирование и склеивание фигуры на другой лист и настройка ее на размер ячейки

У меня есть две таблицы в одном файле Excel, в листе «Tabelle 1» есть только одно изображение, которое, как я предполагаю, автоматически получает имя «Изображение 1». Я хотел бы скопировать это изображение и вставить его в лист под названием «Обзор», который находится в одном файле Excel с «Tabelle 1». Я хотел бы вставить это изображение в ячейку A1, и я хочу, чтобы она соответствовала размеру ячейки и не была больше, чем ячейка A1.

Как я могу это сделать?

+0

Вы пытались «записать макрос»? –

ответ

1
Dim pasteCell As Range 

Set pasteCell = Sheets("Overview").Range("A1") 

Sheets("Tabelle1").Shapes("Picture1").Copy 
Sheets("Overview").Paste pasteCell 

Sheets("Overview").Shapes(1).Height = pasteCell.Height 
Sheets("Overview").Shapes(1).Width = pasteCell.Width 

Предполагая, что на обзорном листе нет изображения.

+0

Вы забыли '.top' и' .left' свойство формы (чтобы быть в A1). –

+0

выглядит как парень, отредактировавший его, и я не понял, что ^^ добавил его снова. Листы («Обзор»). Вставьте pastecell вместо листов («Обзор»). – gizlmo

0
Option Explicit 

Sub Copy_Shape() 

Dim Sh1 As Worksheet 
Dim Sh2 As Worksheet 
Dim PasteCell As Range 
Dim Pic1 As Shape 
Dim Pic2 As Shape 

With ThisWorkbook 
    Set Sh1 = .Sheets("Tabelle 1") 
    Set Sh2 = .Sheets("Overview") 
End With 


Set Pic1 = Sh1.Shapes("Picture 1") 

Pic1.Copy 

With Sh2 
    .Paste 
    Set Pic2 = .Shapes(.Shapes.Count) 
    Set PasteCell = .Cells(1, 1) 
End With 

With Pic2 
    .Height = PasteCell.Height 
    .Width = PasteCell.Width 
    .Top = PasteCell.Top 
    .Left = PasteCell.Left 
End With 

Set Pic1 = Nothing 
Set Pic2 = Nothing 
Set PasteCell = Nothing 
Set Sh1 = Nothing 
Set Sh2 = Nothing 

End Sub 

Если вы новичок в VBA, это хороший первый тренинг для практики.