1

在 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 ?

4

2 回答 2

1

我安装了 BullZip PDF 打印机,然后 .PageSetup.Orientation 工作。因此,PageSetup 似乎需要安装打印机。

于 2009-10-26T09:50:50.847 回答
0

你在做正确的事。

为什么要设置 txtPrintArea 但又设置 .PrintArea = xlSheet.UsedRange.Address ???

否则,您将需要发布更多代码作为示例。我根据您的问题创建了以下内容,它对我有用:

Set xlSheet = Sheet1
Set xlCol = Sheet1.Rows(1)
txtPrintArea = "A"
With xlSheet                         '// Defined being an Excel.Worksheet
    xlSheet.UsedRange.Columns.EntireColumn.AutoFit
    txtPrintArea = txtPrintArea & "$" & Trim(Str(xlCol.Row)) + ":b2"   '// I created the range to print before
    With .PageSetup
        .Orientation = xlLandscape
        .PrintArea = txtPrintArea '//xlSheet.UsedRange.Address
    End With
End With
于 2009-10-21T21:42:09.487 回答