首页 文章

Excel VBA代码选择非空单元格

提问于
浏览
4

在Excel中,让我有B2到B7和C2到C7的数据 . 在VBA中,我可以编写一个宏来选择它:

Sub Macro1()
Range("B2:C7").Select
End Sub

如何重写代码以便自动选择非空的单元格?如果我删除单元格B7和C7中的数据,那么我希望宏只选择范围(B2:C6)如果我将数据添加到单元格B8和C8,那么我希望宏选择范围(B2:C8) .

我的数据总是会启动B2,C2,而且数据之间没有任何空闲空间 .

2 回答

  • 2

    您的数据始终从B2,C2开始,中间没有空单元格?如果是这样,您可以将变量设置为“最后填充行”

    lastRow = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
    Range("B2:C" & lastRow).Select
    

    并定义从B2到C“最后一行”的范围

  • 5

    使用循环:

    Sub qwerty()
        Dim rng As Range, r As Range, rSel As Range
    
        Set rng = Range("B2:C7")
        Set rSel = Nothing
    
        For Each r In rng
            If r.Value <> "" Then
                If rSel Is Nothing Then
                    Set rSel = r
                Else
                    Set rSel = Union(rSel, r)
                End If
            End If
        Next r
        If Not rSel Is Nothing Then rSel.Select
    End Sub
    

    如果要扩展要测试的区域,请使用:

    Range("B2:C7").CurrentRegion
    

相关问题