仅提供思路
ActiveWindowWidth返回的是像素点数
一般全屏至少800或1024
所以结果不对
可以用尺测量一下
列宽为100时所对应的的像素点数
一般大概即可
然后除以100
则得到列宽为1是对应的像素点数
然后在
ActiveWindowWidth 07中
除以此像素点数
另外
语句直接写成
Columns("D:D")ColumnWidth = Round(ActiveWindowWidth 07/n, 0)
n是上面计算的列宽为1是对应的像素点数
仅供参考祝您顺利
没找到专门的选中文本的方法可以直接计算,但可以用以下方式得到计算结果。
Sub chang()
Dim a As Integer
a = Len(SelectionText)‘selectiontext表示选中的文本,len方法计算选中字符串长度
MsgBox a
End Sub
宽度为9999999即不可取宽度,原因是:
当Word合并行以后,在合并单元格的左侧,它所占的各行中第一行的列数必须不少于其它行的列数(注意是左侧),这时合并单元格的宽度才是可取的。这是因为程序在取合并单元格宽度时是取它在第一行中所占的宽度,如果它在第一行中是第八列,而在第二行中却多于这个列数(比如第九列),则VBA就不能正确返回宽度值。
知道了这个道理,很简单,只要保证合并单元格在所占的各行中,在第一行所在的列数不少于它在其它各行中所在的列数却可。
以上就是关于EXCEL VBA中,如何让列宽随窗口的变化而按比例调整全部的内容,包括:EXCEL VBA中,如何让列宽随窗口的变化而按比例调整、WORD VBA 获取所选文字宽度、vba的单元格宽度为什么是9999999等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)