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

时间:2017-03-07 04:39:39

标签: excel excel-vba vba

我正在尝试以点数确定可见工作表区域。到目前为止,我已经尝试了Application.Width,但这给了我整个区域,包括滚动条,同样Application.Height包括功能区和水平滚动条。我特别需要的是这个可见工作表区域的大小。

到目前为止我尝试过的东西都在看可视范围。例如,如果我可以通过AA40看到A1,那么我可以使用代码

 Debug.Print ws.Range("A1:AA40").Width
 Debug.Print ws.Range("A1:AA40").Height

唯一的问题是,如果我能看到AB列的一半和第41行的一半,那么我就没有完整的尺寸。此外,如果我决定将应用程序窗口大小更改为屏幕的一半,则无法调整。

我不需要转换为像素数,我只需要点大小。有没有人知道如何获得可见区域大小,或者至少如何调整范围以适应这个可见区域?

2 个答案:

答案 0 :(得分:1)

您可以访问Windows的{​​{1}}集合,并使用该集合项目的ApplicationWidth属性。 E.g。

Height

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

示例:

enter image description here

答案 1 :(得分:0)

网格的尺寸:

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

上面的代码对我有用,返回了只能在屏幕上看到的Excel网格的尺寸-没有滚动条,没有功能区,没有公式栏-仅显示了单元格。