如何获取工作表上的 Excel 表单控件标签以更改其长度以匹配其标题中字符串的长度。重要的是,它必须与查看文件的屏幕或工作表上的缩放设置无关。
到目前为止,我有:
Sub LabelLength()
Dim XYLabel As Shape
Dim XYDataSheet As Worksheet
Set XYDataSheet = ThisWorkbook.Sheets(1)
Set XYLabel = XYDataSheet.Shapes(1) 'This is the Forms Label
XYLabel.OLEFormat.Object.Caption = Trim(XYDataSheet.Cells(1, 1).Value)
XYLabel.Width = Len(Trim(XYDataSheet.Cells(1, 1).Value)) * 7.5
End Sub
哪个有效,但在一些字幕之后确实留下了相当多的空间。
最佳答案
我认为这不能用表单控件来完成,至少不能直接完成。如果您想坚持使用 Form 控件,我认为您在正确的轨道上,可以根据文本大小缩放其 .width 属性。为了做得更好,您可能必须构建一个字典对象或其他东西,并根据您在字典对象中列出的宽度对字符串中所有字符的宽度求和。
但是,如果您可以将标签切换到 ActiveX 控件,则可以使用以下方法解决此问题:
.WordWrap = False
.AutoSize = True
我认为人们通常更喜欢使用表单控件,因为它们更简单一些。但我也认为,总的来说,ActiveX 控件具有更大的灵 active ,您可以根据自己的需要更多地自定义它们。您可以阅读更多有关表单控件与 ActiveX 控件的信息 here .
关于vba - 使用 VBA 更改 Excel 表单标签长度以匹配其文本的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50953085/