【发布时间】:2017-08-16 20:03:46
【问题描述】:
我知道这个问题可能看起来与过去的问题几乎相同,但我的工作表中有一个细微差别,除了前 7 行之外,我的一列完全是空的。问题是我的代码找到了 ALL 单元格包含数据的最后一行,而不是包含至少一个数据项的最后一行。 IE。 A1:Q7 包含数据,并且由于所有行都包含数据,我的代码将打印区域设置为 A1:Q7,尽管 C14 中有数据。我希望我的打印区域为 A1:Q14。我将如何去做这件事。代码如下。
Sub SetPrintArea()
Dim ALastFundRow As Integer
Dim AFirstBlankRow As Integer
Dim wksSource As Worksheet
Dim ws As Worksheet
Dim rngSheet As Range
Set wksSource = ActiveWorkbook.Sheets("WIRE SCHEDULE")
Set ws = ThisWorkbook.Sheets("WIRE SCHEDULE")
'Finds last row of content
ALastFundRow = wksSource.Range("A8").End(xlDown).Row
'Finds first row without content
AFirstBlankRow = ALastFundRow + 1
Set rngSheet = ws.Range("A1:Q" & LastFundRow + 7)
'Sets PrintArea to the last Column with a value and the last row with a value
ws.PageSetup.PrintArea = rngSheet.Address
结束子
任何事情都会有所帮助。谢谢!
【问题讨论】:
-
仅供参考,您在
Set rngSheet中仅使用LastFundRow而不是ALastFundRow。另外,wksSource和ws有什么区别?最后,您可以只使用 C 列作为ALastFundRow中的列,不是吗?或者它不会总是拥有最多数据的 C? -
哦,哎呀。没有弄乱功能,所以我没有注意到。我对此很陌生,所以感谢您的提示,我尝试了但它没有做任何事情:(
-
C 列有空格吗?试试
ALastFundRow = wksSource.Range("C" & Rows.Count).End(xlUp).Row