Excel 确定以点为单位的可见工作表区域大小

Excel 确定以点为单位的可见工作表区域大小,excel,vba,Excel,Vba,我试图以点为单位确定可见的工作表区域。到目前为止,我已经尝试了应用程序。Width,但这给了我整个区域,包括滚动条,同样的应用程序。Height包括功能区和水平滚动条。我特别需要的是这个可视工作表区域的大小 到目前为止,我尝试过的方法是观察可见范围。例如,如果我可以看到A1到AA40,那么我可以使用代码 Debug.Print ws.Range("A1:AA40").Width Debug.Print ws.Range("A1:AA40").Height 唯一的问题是,如果我能看到AB列的

我试图以点为单位确定可见的工作表区域。到目前为止,我已经尝试了
应用程序。Width
,但这给了我整个区域,包括滚动条,同样的
应用程序。Height
包括功能区和水平滚动条。我特别需要的是这个可视工作表区域的大小

到目前为止,我尝试过的方法是观察可见范围。例如,如果我可以看到A1到AA40,那么我可以使用代码

 Debug.Print ws.Range("A1:AA40").Width
 Debug.Print ws.Range("A1:AA40").Height
唯一的问题是,如果我能看到AB列的一半和41行的一半,那么我就没有完整的大小。此外,如果我决定将应用程序窗口大小更改为屏幕的一半,则它是不可调整的


我不需要转换成像素的数量,我只需要点的大小。是否有人知道一种获取可见区域大小的方法,或者至少知道如何调整范围以仅适合此可见区域?

您可以访问
应用程序的
集合
并使用该集合项的
宽度
高度
属性。例如

Debug.Print Application.Windows(1).Width
Debug.Print Application.Windows(1).Height
您还可以参考
ActiveWindow
,并从中获取属性

例如:

网格的尺寸:

?Activewindow.activepane.VisibleRange.Height,Activewindow.activepane.VisibleRange.Width


上面的操作对我来说很有效,只返回了屏幕上可以看到的Excel网格的尺寸-没有滚动条、功能区、公式栏-只显示了单元格。

这仍然给了我应用程序窗口的尺寸,所以从左上到右下的对角线绘制的线最终离开了屏幕。然而,它确实让我找到了我需要的答案。只需将
Width
更改为
usablewidth
,高度也一样。这很有魅力。非常感谢。有趣的是,当我在一台电脑上试用这个样本时,效果很好。在我的另一台计算机上,我必须关闭标题才能正常工作。好奇,但我不想在我的案例中显示标题。。。