2017-06-01 9 views
0

からExcelの表すPageSetupクラスのPaperSizeを&オリエンテーションのプロパティを変更することはできません、 コードはエラーなしで実行されますが、エクセル私は用紙サイズや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 

プリンタドライバが@Maximはあなたのコードを試してみました、それが働いている

+0

ソリューションが見つかりました!最初は 'Rws.PageSetup.PrintArea =" "' xlApp.PrintCommunication = False'の前になければならず、ブック内の** ALL **ワークシートに変更を適用する必要があります –

答えて

0

インストールされています。コードに基づいて、ワークシート「比較結果」のページ設定のみを変更することに注意してください。 「データ入力」は変更されません。

- 回答が正しい場合、アップアップしてください。

+0

"比較結果"も変更されません。それは問題です... –

+0

あなたのコードにステップインしようとしましたか? .Orientationにブレークポイントを追加し、コードが実際にその行を渡すかどうかを確認します。私が考えている可能性の1つは、「これらのワークシートで何かをしてください」のどこかにTry-Catchを置き忘れたことです。 –

+0

解決策が見つかりました!最初に Rws.PageSetup.PrintArea = "" の前にある必要があります。xlApp.PrintCommunication = False 秒、ブックのすべてのワークシートに変更を適用する必要があります。 ありがとうございました! –

関連する問題