2017-06-01 59 views
0

我試圖改變紙張尺寸和Excel工作表方向 代碼運行沒有任何錯誤更改Excel的PageSetup類的紙張大小和方向特性,但沒有在Excel無法從VB.net

改變

這裏代碼:

Private Sub doCompare() 
    Dim xlApp As Excel.Application = Nothing 
    Dim DEs As Excel.Worksheet = Nothing 
    Dim Rws As Excel.Worksheet = Nothing 
    Dim ewb As Excel.Workbook = Nothing 

    XLapp = New Excel.Application 
    ewb = XLapp.Workbooks.Open("xxxxxxx0.xls") 
    DEs = ewb.Worksheets("Data Entry") 
    Rws = ewb.Worksheets("Comparing Results") 

    'Do something with these worksheets 

    'Now trying to change default settings. Code copied from Excel macro 
    xlApp.PrintCommunication = False 
    Rws.PageSetup.PrintArea = "" 
    DEs.PageSetup.PrintArea = "" 
    With Rws.PageSetup 
    .Orientation = Excel.XlPageOrientation.xlLandscape 
    .PaperSize = Excel.XlPaperSize.xlPaperA4 
    .FitToPagesWide = 1  'Fit All Columns to page 
    End With 
    xlApp.PrintCommunication = True 

End Sub 

打印機驅動程序安裝

+0

找到解決方案!首先,'Rws.PageSetup.PrintArea =「」'必須在'xlApp.PrintCommunication = False'之前,必須對工作簿中的所有**工作表應用更改 –

回答

0

@Maxim想你的代碼,它工作正常。請記住,根據您的代碼,您只能更改工作表「比較結果」的頁面設置。 「數據輸入」保持不變。

- 如果回答正確,歡迎上傳。

+0

「比較結果」也保持不變。這是一個問題... –

+0

您是否嘗試進入您的代碼?在.Orientation上添加一個斷點並查看代碼是否確實通過了該行。我正在考慮的一種可能性是錯誤地嘗試抓住你的某處「'對這些工作表做些什麼」 –

+0

找到了解決方案!首先, Rws.PageSetup.PrintArea =「」 必須先於 xlApp.PrintCommunication = False 第二,必須對工作簿中的所有工作表應用更改。 謝謝! –