ActiveX控件在打开Excel 2010文件时调整大小

ActiveX控件在打开Excel 2010文件时调整大小,excel,activex,Excel,Activex,我在互联网上读过很多关于ActiveX控件在单击或打印预览时自行调整大小的问题。我两个都没有问题 在excel2010中打开XLSM(或出现XLSB)文件时,ActiveX控件自身的大小调整有问题XLS文件似乎没有问题 单击按钮不会导致任何新的大小调整问题。该问题仅在打开文件时出现。如果我删除所有的控件并重新制作它们,问题就会消失。是否有其他人有此问题,并且知道解决此问题的方法,而无需: 删除控件并重新创建它们 将任何VBA代码添加到工作簿中,以防止调整大小或保存以前的大小参数 使用Form控件

我在互联网上读过很多关于ActiveX控件在单击或打印预览时自行调整大小的问题。我两个都没有问题

excel2010
中打开
XLSM
(或出现
XLSB
)文件时,ActiveX控件自身的大小调整有问题<代码>XLS文件似乎没有问题

单击按钮不会导致任何新的大小调整问题。该问题仅在打开文件时出现。如果我删除所有的控件并重新制作它们,问题就会消失。是否有其他人有此问题,并且知道解决此问题的方法,而无需:

  • 删除控件并重新创建它们
  • 将任何
    VBA
    代码添加到工作簿中,以防止调整大小或保存以前的大小参数
  • 使用
    Form
    控件而不是
    ActiveX
    控件

  • 基本上,我正在寻找一种解决此问题的简单方法,如果可能的话,它不需要我批量修改我遇到此问题的许多不同工作簿。

    右键单击按钮>格式控制>属性>不移动单元格或调整单元格大小
    这应该可以解决问题

    我不确定为什么VBA会成为问题,因为您通常会使用VBA处理按钮单击。我在这里回答这个问题是因为这是关于这个问题的最新信息请求,我想我最近找到了一个最简单的方法[大脑放屁,忘记了我是如何解决这个问题的,所以编辑以更正记录]防止ActiveX控件在Excel中调整大小。你必须强制重画。我通过操纵控件的点击事件中的.Top属性来实现:

    'REMOVE FOCUS WHEN ACCELERATOR USED, .TOP MANIPULATION FIXES RESIZE BUG
    With cmdSubmit
        .Visible = False
        .Visible = True
        .Top = .Top - 1
        .Top = .Top + 1
    End With
    

    这使按钮始终保持良好的外观。我还使按钮在每次单击时不可见,以消除用户使用加速键启动按钮时留下的残余焦点(TakeFocusOnClick仅适用于单击),这一点尤其重要,因为构建支持键盘的解决方案的能力是我坚持使用ActiveX控件的唯一原因。

    ,您所问的问题标记为
    VBA
    ,但实际上并不需要任何代码?通常,当控件的大小调整是因为列或单元格移动时,我会说这是正确的,但事实并非如此。该属性已设置为“不移动”或“不调整大小”。仔细查看文件后,我发现它是在工作簿打开时发生的,并且仅在活动工作表上,而不是工作簿中可能有其他ActiveX控件的任何其他工作表上。