2016-03-15 98 views
0

我通過在同一個Excel文件中複製和粘貼形狀來解決問題。將形狀複製並粘貼到其他工作表並將其調整爲單元格大小

我在一個Excel文件中有兩張表格,在表格「表格1」中只有一張圖片,我假設自動獲取名稱爲「圖片1」。我想複製此圖片並將其粘貼到名爲「概述」的表單中,該表單與「表格1」位於同一個Excel文件中。我想將此圖片粘貼到單元格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新手,這是一個很好的練習練習。

相關問題