我将图片临时放置并隐藏在 Sheet1 中。我选择这种方法是因为我不希望将图片本地存储在我的驱动器上。
然后,我有一个带有按钮的无模式用户窗体,该按钮应该将图片从 Sheet1 传输到当前的 ActiveSheet。
到目前为止,我有以下代码在关闭工作簿之前隐藏图片:('On Error' 在那里,因为根据用户的不同,图片不会总是出现在 Sheet1 中)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim tempWs As Variant
Call HidePic
End Sub
Private Sub HidePic()
Dim tempWs As Variant
On Error Resume Next
For Each tempWs In ThisWorkbook.Worksheets
tempWs.Pictures.Visible = False
Next
End Sub
接下来,以下代码有效,但仅适用于 Sheet1(在本例中,图片存储在其中)。当我切换到另一张纸然后点击用户窗体上的按钮时;存储在“A1”中的任何数据都被删除,但没有放置/粘贴图片。
Private Sub Pic_Click()
Dim tempWs As Variant
On Error Resume Next
For Each tempWs In ThisWorkbook.Worksheets
tempWs.Pictures.Visible = True
tempWs.Pictures.Select
Next
Selection.Cut
ActiveSheet.Range("A1").Activate
ActiveSheet.Paste
End Sub
附加信息:我只使用“Select/Selection.Cut”而不是更短(更快?)“.Cut”,因为出于某种原因,仅使用 Cut 不会将图片放在“A1”中