Vba 过滤一列中的空格,填充另一列中的值

Vba 过滤一列中的空格,填充另一列中的值,vba,excel,Vba,Excel,我有一个宏,它可以过滤工作簿中的空格和循环 Sub Filter() SearchCol = "Branch ID" Dim ws As Object For Each ws In Worksheets Set rng1 = ws.UsedRange.Find(SearchCol, , xlValues, xlWhole) With ws.Range("A2") .AutoFilter field:=rng1.Column, Criteria1:="<>" End Wi

我有一个宏,它可以过滤工作簿中的空格和循环

Sub Filter()


SearchCol = "Branch ID"
Dim ws As Object

For Each ws In Worksheets
Set rng1 = ws.UsedRange.Find(SearchCol, , xlValues, xlWhole)
With ws.Range("A2")
    .AutoFilter field:=rng1.Column, Criteria1:="<>"
End With

Next ws

End Sub
子过滤器()
SearchCol=“分支机构ID”
将ws设置为对象
对于工作表中的每个ws
Set rng1=ws.UsedRange.Find(SearchCol、xlValues、xlWhole)
带ws.Range(“A2”)
.AutoFilter字段:=rng1.Column,标准1:=“”
以
下一个ws
端接头
完成此操作后,我现在要搜索另一列,应用此筛选器,并用的值填充该列中的所有单元格,然后尝试下一列:

Sub test()
    Dim SearchCol As String
    Dim rng1 As Range
    Dim rng2 As Range
    Dim ws As Worksheet

    SearchCol = "ID"

    For Each ws In Worksheets
        Set rng1 = ws.UsedRange.Find(SearchCol, , xlValues, xlWhole)
        Set rng2 = ws.UsedRange.Find("Amount", , xlValues, xlWhole)
        If Not rng1 Is Nothing Then
            With ws
                .Range("A2").AutoFilter field:=rng1.Column, Criteria1:="<>"
                .Range("A2").AutoFilter field:=rng2.Column, Criteria1:="<4"
                On Error Resume Next
                lastRow = .Cells(.Rows.Count, rng2.Column).End(xlUp).Row
                .Range(.Cells(rng2.Row + 1, rng2.Column), .Cells(lastRow, rng2.Column)).SpecialCells(xlCellTypeVisible).Interior.Color = RGB(255, 0, 0)
                On Error GoTo 0
            End With
        End If
    Next ws
End Sub
子测试()
以字符串形式显示
变暗rng1 As范围
变暗rng2 As范围
将ws设置为工作表
SearchCol=“ID”
对于工作表中的每个ws
Set rng1=ws.UsedRange.Find(SearchCol、xlValues、xlWhole)
设置rng2=ws.UsedRange.Find(“金额”,xlValues,xlother)
如果不是,那么rng1什么都不是
与ws
.Range(“A2”)。自动筛选字段:=rng1.Column,标准1:=“”

.Range(“A2”).AutoFilter字段:=rng2.Column,Criteria1:=“我想我需要定义一个rng2,不是吗?第二个autofilet中的字段应该是rng2吗?”?