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
,高度也一样。这很有魅力。非常感谢。有趣的是,当我在一台电脑上试用这个样本时,效果很好。在我的另一台计算机上,我必须关闭标题才能正常工作。好奇,但我不想在我的案例中显示标题。。。