Excel VBA 自动过滤器然后更改字段值并填写错误处理空白单元格的可能性

Posted

技术标签:

【中文标题】Excel VBA 自动过滤器然后更改字段值并填写错误处理空白单元格的可能性【英文标题】:Excel VBA autofilter then change field value and filldown with error handling for blank cell possibilities 【发布时间】:2019-04-15 16:47:26 【问题描述】:

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 列中可见的第一个单元格的可见数据。

【问题讨论】:

我可以请求您将第一段拆分为项目符号或其他内容吗?我无法弄清楚每个问题,因为有些句子似乎有重复的点。 另外,请参阅How to avoid using Select in Excel VBA。 【参考方案1】:

去尝试解决我认为你正在做和想要的东西:

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

【讨论】:

以上是关于Excel VBA 自动过滤器然后更改字段值并填写错误处理空白单元格的可能性的主要内容,如果未能解决你的问题,请参考以下文章

用Excel中的vba获取网页内容填写网页表单

高分跪求 VBA word中实现循环搜索 并在WORD中找到列表 再根据已有数据自动填写进本行其它列

有没可以将Excel数据自动填写到表单的软件?

EXCEL VBA 不完全匹配自动过滤器

复制自动过滤范围,vba excel

在表列中查找值并返回表行号 - VBA