2014-09-25 65 views
0

我试图使用vba代码打印excel区域(AC120:AT128),当单元格值包含“X”时 此刻我的代码打印出整个电子表格,但我只希望它打印出所选细胞区域。excel vba如果单元格在Excel电子表格中包含值打印区域?

有人可以告诉我怎么做到这一点吗?提前致谢。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Dim celltxt As String 
celltxt = ActiveSheet.Range("AQ98").Text 
If InStr(1, celltxt, "X") Then 

Dim ws As Worksheet 
For Each ws In Worksheets 
If ws.Range("AQ98") = "X" Then 
ws.PrintOut 
End If 
Next ws 

Else 

End If 

End Sub 

回答

0

我不确定您使用的是什么版本的Excel,但在Office 2010中,您可以简单地使用。

Range("AC120:AT128").PrintOut()

或者

Selection.PrintOut()

您还可以使用设置打印区域功能,例如

ws.PageSetup.PrintArea = "AC120:AT128"

+1

感谢即时通讯使用2010年,凡在我行代码abouts我把这个好吗? – 2014-09-25 13:01:57

+0

如果我已经理解了你想达到的目标,你应该能够删除“ws.PrintOut”行并用“Range(”AC120:AT128“)。PrintOut”行代替它。 – 2014-09-25 13:12:40

+0

是的,我设法做到了这一点,感谢您的帮助,最后我能告诉它打印纵向页面? – 2014-09-25 13:13:44

相关问题