2013-08-19 195 views
0

我试图清除细胞M22使用,并打算最后一列,但使用最后一列是躲避我的动态范围出发。清除动态范围VBA

感谢

Sub clear() 
Workbooks.Open Filename:=ThisWorkbook.path & "\..\Master Info Page.xlsx" 


    With Sheets("Sheet1") 
    lastCol = .Cells(13, .Columns.Count).End(xlToLeft).Column 
    Lastrow = .Cells(.Rows.Count, lastCol).End(xlUp).Row 
    End With 

Sheets("Sheet1").Range(Cells(M22, 13), Cells(Lastrow, lastCol)).Clear 

End Sub 

回答

3

你不能只是做:

With Sheets("Sheet1") 
    .Range("M22", .Cells(.Rows.Count, .Columns.Count)).Clear 
End With 
+0

只是要注意的是,我们可以只使用'Rows.Count'和'Columns.Count'但它使绝对没有什么区别:) –

+3

在大多数情况下,这是真的。如果没有片预选赛,Rows.Count和Columns.Count返回的行和列,应用程序可以支持的数量,所以,如果在Excel 2007中打开这将是一个数比.xls的工作簿中高得多,可能导致错误(单元M1048576不存在于.xls文件中)。因此,与海报打开一个文件,它是可能的,他们将要使用的表的行和列计算,而不是应用程序。然而,海报打开.xlsx文件,所以它可能是我的这个小不点是没有实际意义:P – tigeravatar

+0

+1这种可能性并没有发生在我身上,谢谢。 –