VBA代码在过滤另一列之后填充可见列
问题描述:
我需要我的代码帮助。我是VBA新手,所以不太明白这样做的权利。已经从另一个线索搜索答案,但它太先进了,我无法遵循它。VBA代码在过滤另一列之后填充可见列
这里我想要的情况。 列S我使用vlookup从sheet3中查找匹配数据,并使用N/A值进行过滤。那么我想用“Fulfilled”填充Q列中的可见数据,但我得到的是它填充了我的Q2的标题值,而不填充到最后一行。
Sheets("Sheet1").Select
Range("S2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
' vlookup from sheet3
Range("S2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-14],Sheet3!C[-16],1,0)"
Selection.AutoFill Destination:=Range("S2:S" & Range("E" & Rows.Count).End(xlUp).Row)
Range("S2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("S2").Select
ActiveSheet.Range("$A$1:$S$20000").AutoFilter Field:=19, Criteria1:="#N/A"
' here it don't fill to last row
Range("Q2").Select
ActiveCell.FillDown
非常感谢您的帮助。
答
自动填充需要知道自动填充的范围,而不仅仅是顶部单元格。假如你已经是在最后一部分是唯一的问题,试试这个来代替:
With ActiveSheet.UsedRange
.Resize(.Rows.Count - 1).Offset(1).Columns("B"). _
SpecialCells(xlCellTypeVisible).FillDown
End With
或者它可能是.value = "Fulfilled"
而不是.Filldown
,这取决于你想要做什么。
这就是说,想到重构你的代码,以摆脱Select
,ActiveSheet
和Copy/Paste
东西`和合格的范围工作。
非常感谢。它的工作。 –
@RuzainiSubri欢迎:) –