我有一组链接的子程序,其工作原理如下:
使用此方法将粘贴的范围放入列表框中(感谢 Rory 的耐心):
ActiveSheet.ListBox1.List = Sheets("搜索条件控件").Range("G1:G21").Value
结果是,对于用户在 TextBox 中键入的每个字符,ListBox 都会更新。
我遇到的问题是,随着上面 #1 中提到的 TextBox 中的每次击键,ListBox 都会缩小一点。 这是正常行为吗?我误用了列表框,我是否做错了什么,或者每次更新列表框时我是否需要重新指定列表框的尺寸?
ActiveSheet.OLEObjects("ListBox1").Top = 35
ActiveSheet.OLEObjects("ListBox1").Left = 650
ActiveSheet.OLEObjects("ListBox1").Width = 550
ActiveSheet.OLEObjects("ListBox1").Height = 610
提前感谢您对此的任何想法。
我也遇到了同样的问题。 我的 ActiveX 列表框会在工作表上移动并更改大小,但我看不到任何原因。
虽然我确实继续开发了一些代码来重置大小和坐标,但这并不令人满意,因为必须有一种机制来触发该代码 - 我不想给最终用户带来负担。
我在另一个用户论坛找到了更好的答案。 有一个名为
IntegralHeight
的列表框属性,其默认属性为 True
- 与屏幕分辨率和列表框内容的最佳显示有关。 只需将其设置为 False
即可。 我用一些让我适应的 ActiveX 框做到了这一点,并且我能够禁用“调整”代码,到目前为止,一切都很好!
IntegralHeight = True 是一个很好的解决方案。我的工作簿中有一个代码,每次激活工作表时都会调整列表框的大小 - 而且这个解决方案也不知道为什么不起作用。