替换excel中的嵌入对象

时间:2017-03-10 14:58:44

标签: excel vba excel-vba

我在工作表中创建了一个命令按钮,当用户单击该按钮时,将出现一个带有2个命令按钮的表单。显示嵌入文件的第一个按钮,第二个用于替换它的按钮。这是代码。

Private Sub firstbutton_Click()

Sheet3.OLEObjects("Source").Activate

Unload Me

End Sub

Private Sub ReplaceBtn_Click()

Dim vFile As Variant

vFile = Application.GetOpenFilename("All Files,*.*", Title:="Find file to insert")
If LCase(vFile) = "false" Then

    Unload Me

Exit Sub
End If

Sheet3.OLEObjects.Add Filename:=vFile, Link:=False, DisplayAsIcon:=True,IconFileName:=vFile


Unload Me

End Sub

问题是,如何用新文件替换嵌入文件并将其重命名为" Source"因为第一个按钮将获得名称" Source"。

1 个答案:

答案 0 :(得分:1)

我不确定是否可以替换嵌入对象的内容(尽管我可能错了),因此您可能会在添加新对象并重命名之前删除现有对象。如果它是链接对象,您可以更改链接指向的内容。

Sheet3.OLEObjects.Item("Source").Delete

Dim newObject As OLEObject
Set newObject = Sheet3.OLEObjects.Add(Filename:=vFile, Link:=False, DisplayAsIcon:=True, IconFileName:=vFile)

newObject.Name = "Source"