Excel:从单元格范围创建图像

时间:2014-11-26 01:22:10

标签: image excel-vba vba excel

使用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.InsertActiveSheet.Shapes.AddPicture,但他们都需要一个文件名才能加载外部图片文件,这不是我想要的。

2 个答案:

答案 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

我认为你不能使用复制/粘贴。