0

我的任务是编写一个包含 if、iferror 和 Vlookup 的公式

我需要将公式应用到包含 values 的最后一行的末尾。

如果 vlookup 抛出 NA ,则单元格应为空白,否则该值应替换为数值“1”

但是当尝试公式但它给出错误时

Sub testt()

Dim l As Long

l = Sheets(1).Range("A1:A" & Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row).Count
    With Sheets("Sheet1")
        .Range("d1").Formula = "=IF(iferror(vlookup(c2,$D:$D,1,false),""),"",1)"
        .Range("d1").AutoFill Destination:=Range("d1:d" & l), Type:=xlFillDefault

    End With

End Sub
4

2 回答 2

0

我的第一个想法......在VBA中,你应该在你的公式中使用两个“for each”......

另外,你想使用 IsError。

我将替换公式如下

.Range("d1").Formula = "=IF(iserror(vlookup(c2,$D:$D,1,false)),"""",1)"

否则,请告诉我们您遇到了什么错误。

于 2012-12-29T16:52:08.117 回答
0

我认为问题出在公式的 IF 部分,特别是逻辑测试。对于电子表格 IF 函数,公式为:

=IF(logical_test, value_if_true, value_if_false)

逻辑测试是(来自 Excel 帮助文件)可以评估为 TRUE 或 FALSE 的任何值或表达式。例如,A10=100 是一个逻辑表达式;如果单元格 A10 中的值等于 100,则表达式的计算结果为 TRUE。否则,表达式的计算结果为 FALSE。

您的逻辑测试很简单:

iferror(vlookup(c2,$D:$D,1,false),"")

也许应该是:

iferror(vlookup(c2,$D:$D,1,false),"") = ""

给出公式(也有“国王的建议”):

"=IF(iferror(vlookup(c2,$D:$D,1,false),"""")="","",1)"
于 2012-12-30T02:54:44.940 回答