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

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

当我的输入更改为列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列上的数据,然后在该列的第一个可见单元格的行M中,输入DataData(如果在过滤器中找到任何内容),则仅填充第M列中可见的第一个单元格中的可见数据。

excel vba filter autofill visible
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.