如何仅自动填充可见单元格?

Posted

技术标签:

【中文标题】如何仅自动填充可见单元格?【英文标题】:How to autofill cells for only the visible ones? 【发布时间】:2021-03-15 19:25:46 【问题描述】:

基本上我过滤了一些数据,现在我正在尝试使用 vlookup 公式(过滤的)自动填充可见单元格。之后,我复制并粘贴为值。我不知道该怎么做,因为这不起作用:

    MasterList.Columns(3).ClearContents
    MasterList.Range("C1").Value = "Client Name"
    MasterList.Range("C2").SpecialCells(xlCellTypeVisible).Formula = "=VLOOKUP(F2,'Reporting Here'!A:F,5,FALSE)"
    MasterList.Activate
    MasterList.Range("C2").Select
    Selection.AutoFill Destination:=Range("C2:C" & RowCountTotal)
    'copy and paste as values
    MasterList.Range("C2:C" & RowCountTotal).Copy
    MasterList.Range("C2:C" & RowCountTotal).PasteSpecial xlPasteValues

我认为这一行不起作用:

MasterList.Range("C2").SpecialCells(xlCellTypeVisible).Formula = "=VLOOKUP(F2,'Reporting Here'!A:F,5,FALSE)"

如何在过滤后将 vlookup 公式复制粘贴到仅可见单元格中?

【问题讨论】:

我可能不明白您要做什么或哪些部分不起作用,但是:如果您执行类似 'MasterList.Range("C2").Copy' 和然后 'MasterList.Range("C2:C" & RowCountTotal).SpecialCells(xlCellTypeVisible).PasteSpecial xlPasteFormulas' ? 我试图在过滤后仅自动填充可见单元格的 vlookup。当我运行你所说的时,我得到 1004:“范围类的自动填充方法失败”。 啊哈,哎呀!谢谢@orange123。 【参考方案1】:

可见细胞

Dim rg As Range
Set rg = MasterList.Range("C2:C" & RowCountTotal) _
    .SpecialCells(xlCellTypeVisible)
rg.Formula = "=IFERROR(VLOOKUP(F2,'Reporting Here'!A:F,5,FALSE),"""")"
Dim arg As Range
For Each arg In rg.Areas
    arg.Value = arg.Value
Next arg

【讨论】:

以上是关于如何仅自动填充可见单元格?的主要内容,如果未能解决你的问题,请参考以下文章

Excel vba 仅自动填充空单元格

如何让自动填充在 VBA 中工作?

excel如何设置输入数字后单元格自动填充颜色

如何自动填充命名单元格?

如何根据变量值“n”自动填充单元格

EXCEL单元格批量填充后如何自动批量添加时间批注?