需要帮助使用VBA将If和Vlookup公式输入到单元格中

时间:2016-03-09 05:58:22

标签: excel vba excel-vba vlookup

我创建了一个按钮,用于在作业数据库中添加新的作业条目。根据{{​​1}}中的值,使用搜索“作业类别”工作表进行Vlookup,并在Cells (emptyRow,40)中输出结果。因此,每次我添加一个新的工作条目时,我希望Cells (emptyRow,43)输入公式并告诉我这项工作属于哪个,如下所示

Cells(emptyRow,43)

但是,我收到此消息:Dim emptyRow As Long emptyRow = Range("Z100000").End(xlUp).Offset(1, 0).Row Cells(emptyRow, 43).Formula = "=IF(Cells(emptyRow,40)=0, "", VLOOKUP(Cells(emptyRow,40),'Job Category'!$G$10:$I$12, 3, TRUE))"

任何人都知道为什么?

3 个答案:

答案 0 :(得分:2)

您正在将工作表函数语法和VBA语法混合在一起。虽然您可以使用WorksheetFunction objectVLOOKUP function返回结果,但似乎您希望将公式写入单元格。由于emptyRow变量,这可能更适合作为xlR1C1样式公式。

'as an xlA1 style
 Cells(emptyRow, 43).Formula = _
    "=IF(AN" & emptyRow & "=0, """", VLOOKUP(AN" & emptyRow & ",'Job Category'!$G$10:$I$12, 3, TRUE))"
'as an xlR1C1 style
 Cells(emptyRow, 43).FormulaR1C1 = _
    "=IF(RC40=0, """", VLOOKUP(RC40, 'Job Category'!R10C7:R12C9, 3, TRUE))"

请记住,在引用字符串中包含引号时,您需要将引号加倍。

答案 1 :(得分:1)

$column->ItemTemplate = banner_urltype=='web_url' ? 'Web Url' : 'Video Url';

答案 2 :(得分:0)

你也可以使用iferror,

Sub Button1_Click()
    Dim emptyRow As Long

    emptyRow = Cells(Rows.Count, "Z").End(xlUp).Row + 1
    Cells(emptyRow, 43).Formula = "=IFERROR(VLOOKUP(AN" & emptyRow & ",'Job Category'!$G$10:$I$12,3,1),"""")"

End Sub