在Excel中,將打印區(qū)域設(shè)置在移動(dòng)單元格區(qū)域內(nèi)可能是比較困難的事。你可能希望捕捉特定單元格區(qū)域?yàn)榇蛴^(qū)域,或者讓打印區(qū)域僅考慮某些列。假設(shè)在Excel工作簿中有幾個(gè)輔助列,不希望打印這些列,但希望這些列可見(jiàn)??梢允謩?dòng)設(shè)置打印區(qū)域以排除非打印區(qū)域,但現(xiàn)在已經(jīng)添加了更多數(shù)據(jù),并且希望以同樣的方式更新打印區(qū)域。 下面的VBA過(guò)程將生成從列A到列D的打印區(qū)域,而不管你是否更新數(shù)據(jù),只要在列A至列D,都將包含在打印區(qū)域中。Sub
PrintArea() Dim sh As Worksheet Set sh = Sheet1 With sh .PageSetup.PrintArea = _ .Range('A1',
.Range('D' & Rows.Count).End(xlUp)).Address End WithEnd
Sub 上述代碼將捕獲列D中最后使用的單元格。代碼中的Sheet1是工作表代碼名稱,如果你使用的工作表不是Sheet1,則需要對(duì)此進(jìn)行修改。 如果想打印單元格A1所處的當(dāng)前區(qū)域,則可以使用下面的代碼:Sub
PrintCurrentArea() Sheet1.PageSetup.PrintArea =
[A1].CurrentRegion.AddressEnd
Sub 其中,當(dāng)前單元格所在的“數(shù)據(jù)塊”中所有數(shù)據(jù)將被視為打印區(qū)域的一部分。這種代碼可以添加到Change事件中,這樣不必反復(fù)運(yùn)行該宏就會(huì)讓打印區(qū)域自動(dòng)包含更新后的數(shù)據(jù)。