我无法通过VBA获取列表框的RowSource属性。从另一个线程,我找到了语法,所以我认为这是正确的。但是,尽管没有失败,它对RowSource属性没有任何作用(它仍然是空白的)。下面:
frmAddIngredient是用户表单。
lbxIngredient是该表单中的列表框控件。
Unique Ingredients是工作簿中的一张。
NumberOfItems是1(在这种情况下)。
它没有给出错误,但它也没有改变任何东西。表单本身目前尚未激活。此代码应该设置表单以供稍后显示。
frmAddIngredient.lbxIngredient.RowSource = Sheets("UniqueIngredients").Range("A1:A" & CStr(NumberOfItems)).Address
最新的代码是
frmAddIngredient.lbxIngredient.RowSource = "=UniqueIngredients!A1:A1"
但是,它仍然没有改变实际形式的任何东西。
另外,我可以添加一个新帖子,还是我必须继续编辑这个帖子并添加内容?
你想要什么(正如在你的问题的评论中所讨论的)是不可能的。按代码设置某些内容不会在属性窗口中更改它的属性,只有在项目重置之后才会更改。
考虑具有2个按钮的Userform,其原始名称和标题,然后在模块中粘贴这2个子。
Sub demo1()
UserForm1.CommandButton1.Caption = "Demo 1"
UserForm1.Show
End Sub
Sub demo2()
UserForm1.CommandButton2.Caption = "Demo 2"
UserForm1.Show
End Sub
当你运行第一个子demo1
按钮1的标题已经改变但按钮2的标题没有。
关闭Userform并现在运行qazxsw poi,你会看到Button 1的标题回到它的原始硬设置(属性窗口)名称,现在Button 2有一个不同的名称。
demo2