2017-02-24 34 views
2

我是VBA和Excel的新手。 我有設置打印區域爲設置打印區域的代碼將不起作用

Dim count As Integer 
count = ThisWorkbook.Worksheets("sheet2").Range("E106").Value 

    Dim i As Integer 
    i = count + 4 


    Sheets("sheet1").PageSetup.PrintArea = Range(Cells(3, 2), Cells(35, i)) 
    End Sub 

但是當我進入打印預覽,顯示完整表單文檔的代碼。 Sheet1和Sheet2是工作表名稱的別名,但我有其他代碼引用它們,它工作得很好。我已經嘗試錄製宏來首先設置打印區域,然後插入我的自定義範圍。 對我做錯了任何幫助,將不勝感激:)

+0

錄製宏,設置打印區域,然後查看宏源做它的一個例子。 –

+0

嗨,嗯,這正是我所做的,然後我將範圍更改爲我的自定義範圍,但它不起作用 –

+0

然後,似乎您設置的範圍不正確,不是嗎? –

回答

4

PageSetupPrintArea屬性不是對象(range),但string抱着地址所需範圍的。嘗試:

With Sheets("sheet1") 
    .PageSetup.PrintArea = .Range(.Cells(3, 2), .Cells(35, i)).Address 
End With    '          ^^^^^^^^ 
1

有點更高級的版本(測試):

With ThisWorkbook.Worksheets("Sheet1") 
    .PageSetup.PrintArea = .Range("offset(B3,0,0,32,Sheet2!E106+2)").Address 
    .DisplayPageBreaks = False ' optional to hide the print area rectangle 
End With 
+0

這是一個不錯而有用的捷徑,我不明白downvote。 –

+0

@ A.S.H我認爲有人認爲它看起來與你的過於相似,或者由於不正常的偏移功能而導致它不正確。我會離開它 – Slai

+0

我認爲你應該離開它,雖然不尋常的方法對專業人士非常有用;) –

相關問題