如何根据其他两列中的空白过滤和填充列

时间:2019-10-29 09:42:36

标签: excel vba

我是stackoverflow的新手,也是VBA的初学者。我正在为我的报告准备代码,该代码将过滤A列中的空白单元格,同时过滤E列中的空白单元格。如果两个都为空,则需要将信息放回A列“无值”和B列中和C放'0'。 我有一段无效的代码。即使E列中的单元格不为空,它也会在A列中放置“无值”,在B,C列中放置“ 0”。这是我所拥有的:

'filtering columns A to AE based on data in columns W and AB
LastRow = ActiveWorkbook.Sheets("DATASOURCE").Cells(ActiveWorkbook.Sheets("DATASOURCE").Rows.Count, "A").End(xlUp).Row

    With DATASOURCE.Range("$A$1:$F$" & LastRow)
        .AutoFilter Field:=1, Criteria1:="="
        .AutoFilter Field:=5, Criteria2:="="

LastRow = ActiveWorkbook.Sheets("DATASOURCE").Cells(ActiveWorkbook.Sheets("DATASOURCE").Rows.Count, "A").End(xlUp).Row

       If LastRow > 2 Then
            .Range(.Range("A2"), .Range("A" & LastRow)). _
               SpecialCells(xlCellTypeVisible).Value = "NO VALUE"
            .Range(.Range("B2"), .Range("X" & LastRow)). _
               SpecialCells(xlCellTypeVisible).Value = "0"
            .Range(.Range("C2"), .Range("Y" & LastRow)). _
               SpecialCells(xlCellTypeVisible).Value = "0"
        End If

    End With

    On Error Resume Next
       DATASOURCE.ShowAllData
    On Error GoTo 0

Columns("A:C").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.FormulaR1C1 = "=R[-1]C"
        Range("A2:C2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Application.CutCopyMode = False

0 个答案:

没有答案