在计算空白单元格时,由于xlUp,我遇到了一个问题。该公式范围只对单元格有效,直到有一个值。例如假设 我的范围是K9:K208,我有155个空白单元格。但是,如果K205上有任何值,那么即使必须是155,它也算作152.我如何处理这个问题?
Sub RoundedRectangle2_Click()
Dim lLastRow As Long
lLastRow = Cells(Rows.Count, 11).End(xlUp).Row
Range("A4") = WorksheetFunction.CountIf(Range("K9:K" & lLastRow), "")
End Sub
答案 0 :(得分:1)
xlUp
用于确定从起始单元格向上的第一个非空白单元格,因此Cells(Rows.Count, 11).End(xlUp)
将从列K
的最后一行开始向上查找。在你的情况下将是K208 - 这就是你应该如何确定最后一行(Cells(Rows.Count, 11).End(xlUp).Row
)。
拥有lastRow=208
你可以从K
列(K9
)的第9行开始循环,就像
For i = 9 To lastRow
并计算所有空白单元格 - 这将保证您不会遗漏任何内容:)
以下是帮助您入门的代码:
Sub CountBlanks()
Dim i, lastRow As Long
lastRow = Cells(Rows.Count, 11).End(xlUp).Row
For i = 9 To lastRow
'check if cell is blank and do any other operations
Next
End Sub
答案 1 :(得分:0)
这是另一种定位“最后一行”的方法。跨越很多专栏。
dim lastRow as long
with worksheets("sheet1")
lastRow = .cells.find("*", after:=.cells(1), _
searchorder:=xlbyrows, searchdirection:=xlprevious).row
.Range("A4") = WorksheetFunction.CountIf(.Range("K9:K" & lastRow), "")
end with