Excel VBA组合框下拉按钮大小--更改了自身
我有一个带有几个组合框(和列表框)的工作簿,以及围绕它们编写的大量vba。我已经在Workbook_Open过程中使用了相同的代码来格式化它们好几个星期了,没有遇到任何重大问题 昨晚我将桌面电脑远程连接到我的工作电脑(这是有史以来的第二次)来编辑代码的其他部分(根本没有涉及到盒子属性)。过了一会儿,所有框的格式,列表和组合,都变得疯狂。列表框右侧的滚动条变得巨大,巨大的滚动条也出现在它们的底部。组合框上的下拉按钮也变大了——几乎和框一样宽 我关闭并重新打开Excel,所有的框都回到了以前的快乐状态,除了一个,它仍然有一个与框一样宽的下拉按钮。我的vba格式代码没有帮助。重新启动计算机没有帮助。我比较了属性窗口中应该相同的两个框(除了名称和左位置),没有什么不同 那么,我是否可以驯服、重置或以其他方式控制这个叛徒下拉按钮?我希望我没有在Excel中处理这种不可预测的行为,但我被卡住了 以下是我的vba格式:Excel VBA组合框下拉按钮大小--更改了自身,excel,vba,combobox,drop-down-menu,Excel,Vba,Combobox,Drop Down Menu,我有一个带有几个组合框(和列表框)的工作簿,以及围绕它们编写的大量vba。我已经在Workbook_Open过程中使用了相同的代码来格式化它们好几个星期了,没有遇到任何重大问题 昨晚我将桌面电脑远程连接到我的工作电脑(这是有史以来的第二次)来编辑代码的其他部分(根本没有涉及到盒子属性)。过了一会儿,所有框的格式,列表和组合,都变得疯狂。列表框右侧的滚动条变得巨大,巨大的滚动条也出现在它们的底部。组合框上的下拉按钮也变大了——几乎和框一样宽 我关闭并重新打开Excel,所有的框都回到了以前的快乐状
With ThisWorkbook.Sheets(c_stMatrixSheet).OLEObjects(c_stMatrixTypeBox)
.Width = 120
.Top = 14
.Left = 878
Call FormatComboBox(.Object)
.Object.AddItem c_stAMatrix
.Object.AddItem c_stBMatrix
.Object.AddItem c_stCMatrix
.Object.Text = c_stAMatrix
End With
您遇到了在工作表上使用ActiveX控件的问题,我也遇到过同样的问题,而且是间歇性的,而且是随机的
我发现真正解决问题的唯一方法是使用表单控件。除非您选择显示隐藏对象,否则这些对象在工作表上更稳定,尽管它们对intellisense是隐藏的。它们也非常灵活,提供了大量的功能—除非您需要事件,因为它们不会触发事件。您遇到了在工作表上使用ActiveX控件的问题,我也遇到了同样的问题,它是间歇性的,并且是随机的
我发现真正解决问题的唯一方法是使用表单控件。除非您选择显示隐藏对象,否则这些对象在工作表上更稳定,尽管它们对intellisense是隐藏的。它们也非常灵活,提供了大量功能——除非您需要事件,因为它们不会触发事件。我也有同样的问题。尚未部署到用户,但下面的代码似乎有效。只需在每次选择工作表时重置大小
Private Sub Worksheet_Activate()
ActiveSheet.Shapes("ComboBoxSelectAccount").Width = 300
ActiveSheet.Shapes("ComboBoxSelectAccount").Height = 20
End Sub
嗯
里克我也有同样的问题。尚未部署到用户,但下面的代码似乎有效。只需在每次选择工作表时重置大小
Private Sub Worksheet_Activate()
ActiveSheet.Shapes("ComboBoxSelectAccount").Width = 300
ActiveSheet.Shapes("ComboBoxSelectAccount").Height = 20
End Sub
嗯
里克我在互联网上花了很多时间,但没有合适的解决方案 我的问题是,在我的笔记本电脑屏幕上(而不是扩展坞中的扩展桌面显示器上!)每次单击下拉按钮时,工作表中activeX组合框的字体都变小了。直到下拉按钮无法访问为止 在开发人员模式下,我可以通过更改组合框大小手动重置字体大小 通过VBA,我执行以下操作,解决了Microsofts的问题:
Private Sub MyComboBox_DropButtonClick()
'MyComboBox.Font.Size = 12 'Has no effect!!!
Dim CbxWidth = 300 As Single 'How big the combobox should be
MyComboBox.Width = CbxWidth + 1
ComboboxUpdate 'or whatever you want to do
MyComboBox.Width = CbxWidth
End Sub
希望不要打扰我,如果我写一些德语单词来帮助我母语的人:
我在互联网上花了很多时间,但没有合适的解决方案 我的问题是,在我的笔记本电脑屏幕上(而不是扩展坞中的扩展桌面显示器上!)每次单击下拉按钮时,工作表中activeX组合框的字体都变小了。直到下拉按钮无法访问为止 在开发人员模式下,我可以通过更改组合框大小手动重置字体大小 通过VBA,我执行以下操作,解决了Microsofts的问题:
Private Sub MyComboBox_DropButtonClick()
'MyComboBox.Font.Size = 12 'Has no effect!!!
Dim CbxWidth = 300 As Single 'How big the combobox should be
MyComboBox.Width = CbxWidth + 1
ComboboxUpdate 'or whatever you want to do
MyComboBox.Width = CbxWidth
End Sub
希望不要打扰我,如果我写一些德语单词来帮助我母语的人:
我也有同样的问题,不知道为什么,但如果你调整它的大小,那么它会再次变得正常。因此,我插入以下内容来解决:
Private Sub ComboBox1_LOSTFocus()
Application.ScreenUpdating = False
ActiveSheet.Shapes.Range(Array("ComboBox1")).Select
ActiveSheet.Shapes("ComboBox1").ScaleWidth 1.25, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("ComboBox1").ScaleHeight 1.25, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("ComboBox1").ScaleWidth 0.8, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("ComboBox1").ScaleHeight 0.8, msoFalse, _
msoScaleFromTopLeft
Application.ScreenUpdating = True
End sub
我也有同样的问题,不知道为什么,但如果你调整它的大小,那么它会再次变得正常。因此,我插入以下内容来解决:
Private Sub ComboBox1_LOSTFocus()
Application.ScreenUpdating = False
ActiveSheet.Shapes.Range(Array("ComboBox1")).Select
ActiveSheet.Shapes("ComboBox1").ScaleWidth 1.25, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("ComboBox1").ScaleHeight 1.25, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("ComboBox1").ScaleWidth 0.8, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("ComboBox1").ScaleHeight 0.8, msoFalse, _
msoScaleFromTopLeft
Application.ScreenUpdating = True
End sub
我做了一些探索,发现如果你打开了PageBreakPreview,它会导致调整大小的问题。返回到正常视图,问题就会消失。我做了一些尝试,发现如果打开了PageBreakPreview,则会导致大小调整问题。回到正常视图,问题就消失了。我只是移动了形状来修复
Private Sub MyComboBox_DropButtonClick()
ActiveSheet.Shapes("ComboBox1").Top = 1
ActiveSheet.Shapes("ComboBox1").Top = 2
End Sub
我只是移动形状来修复
Private Sub MyComboBox_DropButtonClick()
ActiveSheet.Shapes("ComboBox1").Top = 1
ActiveSheet.Shapes("ComboBox1").Top = 2
End Sub
对于列表框,要防止它们在更改字体或重新打开文件时调整大小,请进入列表框属性并将“整数高度”更改为false。对于列表框,要防止它们在更改字体或重新打开文件时调整大小,请进入列表框属性并更改“整数高度”设置为false。我在远程连接时也发现了此问题。我认为这与远程计算机和登录计算机的屏幕分辨率不同有关
我发现,当我复制组合框并删除原件时,新的组合框没有问题。将它们全部选中有点烦人,但至少它们的属性和链接的单元格保留下来并可以使用。我在远程连接时也发现了这个问题。我认为这与远程计算机和登录计算机的屏幕分辨率不同有关 我发现,当我复制组合框并删除原始组合框时,新组合框没有