【发布时间】:2018-04-11 01:45:41
【问题描述】:
你好 Stackoverflow 社区
我需要帮助解决 ListBox 错误。
我在工作表中有两个列表框(单选)而不是在用户窗体中
ListBox1 - 包含主要项目
ListBox2 - 包含与主要项目相关的子项目
选择主要项目时 -
如果不存在子项,ListBox2.Visible = False
如果子项存在,ListBox2.Visible = True 和 .ListIndex = -1(准备子项选择)
使用工作簿时代码运行完美
问题 打开工作簿时,链接到 ListBox1 的宏将自动运行并弹出错误,并以蓝色突出显示 '.ListBox2'
Error = '编译错误:找不到方法或数据成员'
错误不会一直发生,工作簿是否保存时 ListBox2 是否可见,或者是否选择了子项都无关紧要。
我曾尝试在打开的工作簿事件上使用,但错误出现在这些事件之前。
请帮忙
在发生错误的地方添加代码
Dim ListBox2 As ListObject 'Added this in to see if it fixes error but it has not
With Sheet3.ListBox2
.Height = 208.5
.Width = 126.75
.Top = 312.75
.Left = 31.5
.Visible = False
End With
【问题讨论】:
-
请将相关代码添加到您的问题中,指出您遇到错误的行。请注意,编译错误与运行时错误不同。该代码尚未开始运行,因为它无法正确编译。当两次尝试之间没有对工作簿进行任何更改时,它不太可能有时运行。
-
你说得对,我不认为代码正在运行,因为没有编译。我尝试使用不同的选择保存工作簿,有时它可以顺利打开。我无法确定为什么有时它无法编译。抱歉这个愚蠢的问题,既然我已经发布了问题,我该如何输入代码。这是相当多的代码,并且总是突出显示同一行,甚至认为 listbox2 被多次引用
-
不要发布“大量代码”。您可以edit 您的问题(使用edit 链接)仅添加相关代码。 (请参阅“minimal reproducible example”。)也许您的第一步应该是将行
Option Explicit添加到模块的最顶部(以及每个模块,总是如此),然后尝试编译代码以查看是否可以阐明您没有正确声明哪些变量/对象。请注意,它可能会产生多个错误,您需要一次修复一个;这是一件好事。 -
...无论哪种方式,您都没有正确引用
listbox2,可能是未声明的变量或对象? (此外,编译器只会在模块中的第一个错误处停止,无论您使用了多少次......它“不知道”其他错误,因为它没有超过您的第一个错误还没有。) -
直到现在我才知道明确的选项是什么,只是用谷歌搜索了一下,这是一个很好的建议。我还没有设法修复最初的错误
标签: vba excel listbox listbox-control