使用Excel VBA,我想创建一个显示单元格内容的图像。
=$B$2
,例如。宏录制器告诉我这等同于以下代码:
Selection.Copy
ActiveSheet.Pictures.Paste.Select
ActiveCell.FormulaR1C1 = "=R[1]C[1]"
我想在不使用copy-paste-select命令的情况下实现相同目的。换句话说,我想创建一个具有预定义Picture
属性的FormulaR1C1
对象。
我尝试ActiveSheet.Pictures.Add(Left, Top, Width, Height)
,但只获得Runtime error '1004': No link to paste
。我不明白这意味着什么。
我尝试了ActiveSheet.Pictures.Insert
和ActiveSheet.Shapes.AddPicture
,但他们都需要一个文件名才能加载外部图片文件,这不是我想要的。
答案 0 :(得分:1)
不是复制单元格,而是告诉它要将其作为图片粘贴到另一个单元格,请尝试使用:
Range("A1").CopyPicture Appearance:=xlScreen, Format:=xlPicture
现在A1作为图片在你的剪贴板中。您可以使用无聊的旧粘贴将其贴在其他地方。
Range("B1").Select
ActiveSheet.Paste
答案 1 :(得分:1)
您是否尝试获取链接到源范围的“实时”图片,例如在Excel中使用相机工具?
Sub Macro1()
Dim s, rng As Range, rngDest As Range
Set rng = ActiveSheet.Range("B2:C3")
Set rngDest = ActiveSheet.Range("E10")
rng.Copy
With ActiveSheet.Pictures.Paste(link:=True)
.Left = rngDest.Left
.Top = rngDest.Top
End With
End Sub
我认为你不能使用复制/粘贴。