使用字符串变量在VBA中设置对象变量? (Excel 2013)

时间:2014-12-23 05:40:50

标签: excel excel-vba excel-2013 vba

我在页面上有许多ActiveX控件/按钮,我想修改按钮的几个参数(在循环函数中)。

我可以编写循环函数来实现这一点,但无法找到使用字符串变量引用对象的方法。我已经设置了一个对象变量(如下所示),以及一个用于更改对象变量引用的字符串变量 - 但无法找到使其工作的方法。

这是 NOT 工作的代码:

Private Sub TrialCode_Click()

Dim ButtonObj As Object
Dim ButtonCaption As String
Dim ButtonString As String

ButtonString = "CommandButton1"
Set ButtonObj = ButtonString

ButtonCaption = "Something"

ButtonObj.Caption = ButtonCaption  'example of the kind of parameters I want to change

End Sub

Set ButtonObj = ButtonString是失败的命令,报告类型不匹配错误。

我在Excel 2013工作。

我真的希望有办法做到这一点。任何帮助将非常感谢!!!

1 个答案:

答案 0 :(得分:2)

CommandButton属于OLEObject

ButtonString = "CommandButton1"
Set ButtonObj = ActiveSheet.OLEObjects(ButtonString)

ButtonCaption = "Something"
ButtonObj.Object.Caption = ButtonCaption  'example of the kind of parameters I want to change

请注意,某些属性直接位于ButtonObj下,其他属性如 Caption 位于 Object

下方

enter image description here