0
我正在写一个报表宏来从数据库中提取数据并在Excel中输出数据。有时数据只能跨越几列,其他时候会有多达12列。有没有办法使VBA自动调整列,以便它占用整个页面宽度?Excel VBA - 适合页面到页面
所以,如果报告有5列,每个会说1.5“宽,如果有10列,每个将是.75”宽。
谢谢。
我正在写一个报表宏来从数据库中提取数据并在Excel中输出数据。有时数据只能跨越几列,其他时候会有多达12列。有没有办法使VBA自动调整列,以便它占用整个页面宽度?Excel VBA - 适合页面到页面
所以,如果报告有5列,每个会说1.5“宽,如果有10列,每个将是.75”宽。
谢谢。
您需要(1)将窗口宽度ActiveWindow.Width
除以所需的列数。然后(2)将结果宽度应用于您想要适合的所有列。
w = ActiveWindow.Width/n
Columns(1).Resize(, n).ColumnWidth = w
但是,提防,这将不工作,因为窗口宽度是点和列宽为字符,所以你必须计算转换功能。
Function pointsToChars(x) As Integer
p = Range("A1").Width
c = Range("A1").ColumnWidth
pointsToChars = x * c/p
End Function
,最后调用它在你的代码
Sub ResizeColumnWidths(n)
w = ActiveWindow.Width/n
Columns(1).Resize(, n).ColumnWidth = pointsToChars(w)
End Sub
最大化所有列的宽度,然后在页面设置缩放调整到:通过无1? – pnuts 2015-02-10 19:10:46
你在说打印的页面吗? – 2015-02-10 19:22:47
是打印页面。数据集只有几行但列数可变。我希望它能适用于整个页面上具有列数据的单个打印页面。 – JimC 2015-02-10 19:58:20