【发布时间】:2017-10-09 14:32:35
【问题描述】:
我使用 Vlookup 返回第一列中的值,但是该列中只有一半的单元格返回了值(另一半为空白)。我希望我的宏在所有空的 Vlookup 单元格中输入一个空格“”,而不是将 Vlookup 方程保留在单元格中。我想归档列中的所有值,然后将空白单元格更改为 =“”
我的最终目标是根据单元格 I 是否具有值或空白在每一行上张贴注释。如果任何给定行的单元格 I 为空白,则该行 K 列中的单元格将自动填写“已处理尚未支付”,如果单元格 I 中有值,则单元格 K 将自动填写“已支付”
我的问题是我不知道如何编写一个方程来避免隐藏单元格(从过滤器中隐藏)并且只更改过滤器后显示的单元格的值。我的列标题在第 4 行,我的代码如下所示:
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "C").End(xlUp).Row
Range("A4:K" & Lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$A$4:$K" & Lastrow).AutoFilter Field:=9, Criteria1:="="
Range("I4").Offset(1, 0) = " "
Selection.AutoFill Destination:=Range("Range("I4").Offset(1, 0):I" &
Lastrow)
【问题讨论】:
-
您为什么不将原始的
VLOOKUP公式包装在IFERROR中以获得您想要的空间?类似=IFERROR(VLOOKUP(A1,B:C,2,FALSE),"") -
目前还不太清楚你做什么或为什么这样做,或者你的最终目标是什么。您能否重新写下您的问题以更清楚?
-
Iferror 函数不适用于我根据单元格是空白还是有值自动填充单元格的最终目标。我已经更新了我的问题以包括我的最终目标。请让我知道是否有更好的方法来解决这个问题。谢谢!
标签: vba excel excel-formula