查找列标题高度和行标题宽度

这是我之前提到的问题的一个后续,但不同的是,我觉得问一个新的问题是最好的。 我已经使用了一系列的窗口句柄来locking一个用户窗体到Excel电子表格,这使得0,0位置成为列和行标题的左上angular(或“全选”button)。 这是我想要find如何确定列标题的高度和行标题的宽度,以便我可以正确定位用户窗体页面上,无论用户的默认Excel字体设置。

我不认为到目前为止,我的用户表单的代码将是有帮助的,但我很高兴发布,如果任何人想看到。 我可以通过将DisplayHeadings属性设置为false来完全删除标题,但这对于我的最终目标并不起作用。

看起来好像列标题的高度将等于具有相同字体types和大小的单元格的默认高度。 我没有testing过这个方法,因为它只能给我一半所需的东西,但是我仍然想确认一下这个是否准确。

我也知道,行标题的宽度将会改变你在电子表格上的下降(例如,首先增加1000,然后增加10,000,100,000和1,000,000)。 我只需要find最小的宽度(小于1000),但是我想知道如何find一个更大的宽度,如果它不是太复杂。

要find标题大小,我已经尝试通过以下代码删除显示标题之后比较单元格的.left和.top属性:

Sub TestHeadings() Dim fl, ft, tl, tt As Integer tl = Application.ActiveSheet.Range("A1").Left tt = Application.ActiveSheet.Range("A1").Top Application.ActiveWindow.DisplayHeadings = False fl = Application.ActiveSheet.Range("A1").Left ft = Application.ActiveSheet.Range("A1").Top Debug.Print "True: " & tl & ", " & tt 'Returns True: 0, 0 Debug.Print "False: " & fl & ", " & ft 'Returns False: 0, 0 End Sub 

我也尝试通过以下代码比较一个用户窗体(称为Working_Menu,.StartUpPosition属性设置为0-Manul).left和.top属性禁用显示标题后:

 Sub TestHeadings() Dim fl, ft, tl, tt As Integer Application.ActiveWindow.DisplayHeadings = False With Working_Menu .Left = 5 'Also tried 0 .Top = 5 'Also tried 0 .Show End With fl = Working_Menu.Left ft = Working_Menu.Top Application.ActiveWindow.DisplayHeadings = True tl = Working_Menu.Left tt = Working_Menu.Top Debug.Print "True: " & tl & ", " & tt 'Returns True: 5, 145, or 0, 140 Debug.Print "False: " & fl & ", " & ft 'Returns False: 5, 144.75, or 0, 139.5 (Adjusted for screen resolution) End Sub 

我的结果是在代码中注释的,但是这两种方法都没有返回任何表示头部大小的差异。 有没有人有任何想法如何我可以确定列标题的高度,或行标题的宽度?

谢谢!