Excel VBA自动过滤器然后更改字段值和填充并进行错误处理以消除空白单元格的可能性

时间:2019-04-15 16:47:27

标签: excel vba filter autofill visible

我对M列中第一个可见数据行的输入更改后,M列的过滤后的数据未填充可见。在M列标题行之外的第一个单元格中,第一行的第一行填充为不是我输入的。 M中的第一个可见单元格。这不是验证数据,而是向下填充第一行。不跳过,因为没有数据可填写。

我尝试过在可见性和选择性方面发现的许多不同代码,但无济于事。

Sub DataData ()
'Change Active Worksheet to Raw Data
    Worksheets("Raw Data").Activate

    Application.ScreenUpdating = False

    ActiveSheet.Range("$A$1:$Z$" & Rows.Count).End(xlUp).AutoFilter Field:=4, Criteria1:= _
        "*Data*"

    With Worksheets("Raw Data").AutoFilter.Range
       Range("M" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Select
    End With

    ActiveCell.FormulaR1C1 = " DataData "

    With Worksheets("Raw Data").AutoFilter.Range
       Range("M" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Select
    End With

    With ActiveSheet.UsedRange.Select
    se
    .Resize(.Rows.Count - 1).Offset(1).Columns("M"). _
       SpecialCells(xlCellTypeVisible).FillDown
     End With

    ActiveSheet.ShowAllData

我尝试过滤第4列的 Data ,然后在该列的第一个可见单元格的M行中,输入DataData(如果在过滤器中找到任何内容),然后仅填写M列中第一个单元格中可见的可见数据。

1 个答案:

答案 0 :(得分:0)

要尝试解决我认为正在做和想要做的事情:

option explicit 'put this at the top of your module

Sub DataData()
    Dim lr as long
    With Sheets("Raw Data")
        lr = .cells(.rows.count,1).end(xlup).row
        .Range(.Cells(2,"M"),.Cells(lr,"M")).SpecialCells(xlCellTypeVisible).value = " DataData "
        .ShowAllData
    End With
End Sub