【发布时间】:2010-12-08 17:22:52
【问题描述】:
在 MS Project 2003 中使用 VBA 我创建了一个 Excel 工作表并向其写入数据。 之后我想更改我创建的工作表的 SetPrintArea 和方向,所以我写了
with xlsheet '// Defined being an Excel.Worksheet
For i = 1 To .UsedRange.Columns.Count
.Columns(i).EntireColumn.AutoFit
Next i
txtPrintArea = txtPrintArea & "$" & xlCol.Row '// I created the range to print before
With .PageSetup
.Orientation = xlLandscape
.PrintArea = xlSheet.UsedRange.Address
End With
End With
它在 .Orientation 语句处崩溃。 如果我将其注释掉,它会在 .PrintArea 行崩溃。 我的结论是它不能设置 .PageSetup 的任何属性
如何指定 PrintArea ?
【问题讨论】:
-
如果你单步调试你的代码,你能在监视窗口中看到 xlSheet.PageSetup 上的 PrintArea 和 Orientation 属性吗?
-
另外,您不需要代码中的循环来设置列宽。您可以只使用一行:.UsedRange.Columns.EntireColumn.AutoFit
-
.UsedRange.Columns.EntireColumn.AutoFit 确实更好。但是在我的“真实代码”中,我只需要 .UsedRange 的一部分,所以我只是从循环中删除了起始列以简化我在此处发布的代码。
-
在监视窗口中我可以看到 xlSheet.PageSetup 我可以看到其属性的名称,但它显示“” 几乎所有属性都有类似的条目。如果查看 xlSheet.PageSetup.Application.Activeprinter :请参阅“未知打印机(检查您的控制面板)”我没有在这台 PC 上定义打印机,但这不应该有所作为 AFAIK
-
嗯。如果在 PC 上安装打印机,有什么区别吗?
标签: excel vba ms-project page-setup