仅选择包含2列之间数据的单元格

时间:2018-02-22 14:13:32

标签: excel excel-vba vba

我正在寻找一种方法,只选择包含 TWO 列之间数据的单元格。我不能完全理解我需要完成的逻辑。

我认为这是我最好的选择,但我愿意接受其他建议。

Sheet1.Columns("A3:B1000").SpecialCells(xlCellTypeConstants, 23).Select

使用此代码,我可以选择包含值的范围,但它不能在两列之间同时工作。如果列A有数据但列B没有,它仍然会选择列A.

以下是我要做的事。

Example

1 个答案:

答案 0 :(得分:3)

以下代码将通过过滤任何空白单元格然后选择所有可见单元格来执行您所期望的操作,对于我的示例,我使用了A和A列。 B,根据需要修改。

注意:我同意CallumDA的评论,您通常希望避免选择任何内容,但下面的示例代码将向您展示如何将该给定范围添加到变量中,如果您需要用它来做某事,而不是仅仅选择它。

Sub foo()
    Dim ws As Worksheet: Set ws = Sheets("Sheet1")
    'declare and set your worksheet, amend as required
    Lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    'get the last row with data on Column A
    Dim rng As Range
    ws.Range("$A$1:$B$" & Lastrow).AutoFilter Field:=1, Criteria1:="<>"
    ws.Range("$A$1:$B$" & Lastrow).AutoFilter Field:=2, Criteria1:="<>"
    Set rng = ws.Range("A2:B" & Lastrow).SpecialCells(xlCellTypeVisible)
    ws.Range("$A$1:$B$" & Lastrow).AutoFilter
    rng.Select
End Sub