VBA xlUp功能

时间:2018-02-20 06:56:14

标签: excel excel-vba vba

在计算空白单元格时,由于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

2 个答案:

答案 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