Excel ActiveX ListBox随每次更新而缩小

时间:2015-01-26 14:51:29

标签: excel vba excel-vba listbox

我有一组链接的潜艇,它们的工作原理如下:

  1. 用户键入ActiveX TextBox
  2. TextBox中的更改事件调用模块中的子
  3. 该模块子驱动器更新工作表中的命名范围
  4. 范围值驱动更新使用基于范围值
  5. 的查找函数的Excel单元格表
  6. 将表值复制并粘贴到另一个范围(以消除指向公式的链接)
  7. 这个粘贴的范围被放入一个ListBox中使用它(为了耐心而道具给Rory):

    ActiveSheet.ListBox1.List =表格("搜索条件控制")。范​​围(" G1:G21")。值

  8. 结果是,对于用户在TextBox中键入的每个字符,ListBox都会更新。

    我遇到的问题是ListBox在上面#1中引用的TextBox中的每次击键时都会缩小一点。这是正常的行为吗?我在滥用ListBox,我做错了什么,或者每次更新时都需要重新指定ListBox的尺寸?

    ActiveSheet.OLEObjects("ListBox1").Top = 35
    ActiveSheet.OLEObjects("ListBox1").Left = 650
    ActiveSheet.OLEObjects("ListBox1").Width = 550
    ActiveSheet.OLEObjects("ListBox1").Height = 610
    

    提前感谢您对此的任何想法。

1 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。我的ActiveX列表框会在工作表上移动并更改大小,我无法看到。

虽然我确实继续开发了一些代码来重置大小和坐标,但这并不令人满意,因为必须有一种触发代码的机制 - 我不想让最终用户负担用。

我在另一个用户论坛中找到了更好的答案。这是一个名为 IntegralHeight 的列表框属性,其默认属性为True - 与屏幕分辨率和列表框内容的最佳显示有关。只需将其设置为False即可。我用一些能让我适应的ActiveX盒子做到了,我能够禁用"调整"代码,到目前为止,这么好!