VBA搜索表排除空白单元格

问题描述 投票:0回答:1

我在excel中创建了一个搜索表,我想使用VBA代码在工作簿的其余部分中搜索特定的单词。这是我的表的一个例子。

水果店面积

我已将这些值设置为字符串,但是我将一个项目留空然后运行宏时出现问题。因此,如果我只想找到水果和区域,它就不会运行,因为商店是空白的。有没有办法在不填写每行的情况下搜索工作簿?

这是我用来复制数据的代码。

finalrow = Cells(Rows.Count, 1).End(xlUp).Row



For i = 1 To finalrow
If Cells(i, 1) = Fruits And Cells(i, 2) = Store And Cells(i, 3) = Area  Then
Range(Cells(i, 1), Cells(i, 3)).Copy
ssheet.Select (Workbook sheet to paste)
Range("A100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
excel-vba vba excel
1个回答
2
投票

使用IIF():

If IIF(Fruits<>"",Cells(i, 1) = Fruits,True) And _
   IIF(Store<>"",Cells(i, 2) = Store,True) And _ 
   IIF(Area<>"",Cells(i, 3) = Area,True)  Then

也避免使用Select。此外,当只想要值时,只需分配值并跳过剪贴板:

With ActiveSheet
    finalrow = .Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To finalrow
        If IIf(Fruits <> "", .Cells(i, 1) = Fruits, True) And _
           IIf(Store <> "", .Cells(i, 2) = Store, True) And _
           IIf(Area <> "", .Cells(i, 3) = Area, True) Then

           ssheet.Range("A100").End(xlUp).Offset(1, 0).Resize(1, 3).Value = .Range(.Cells(i, 1), .Cells(i, 3)).Value
        End If
    Next i
End With
© www.soinside.com 2019 - 2024. All rights reserved.