如何仅自动填充可见单元格?
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
【讨论】:
以上是关于如何仅自动填充可见单元格?的主要内容,如果未能解决你的问题,请参考以下文章