将Application.worksheet函数作为公式插入单元格

时间:2018-05-30 14:38:16

标签: excel vba excel-vba

您好我希望以下函数作为excel中的实际公式,而不是硬编码的数字。

有哪些提示可以使这个实际公式进入excel中的相应单元格?我希望它能够主动扫描我的书以检测何时删除了某些内容。

MarkConfirm = Application.WorksheetFunction.IfError(VLookup(MWS.Cells(LastMWSR + 1, 3), HBWS.Range("A:A"), 1, 0), "Not in Book")
MWS.Cells(LastMWSR + 1, 1).Value = MarkConfirm

5 个答案:

答案 0 :(得分:2)

您需要将工作表名称添加到函数的TableArray参数中,因为它正在查看不同的工作表。

MWS.Cells(LastMWSR + 1, 1).Formula = "=IFERROR(VLOOKUP(" & MWS.Cells(LastMWSR + 1, 3).Address & ", '" & HBWS.Name & "'!" & HBWS.Range("A:A").Address & ",1,0),""Not in Book"")"  

这将给出类似于:

的公式
=IFERROR(VLOOKUP($C$19, Sheet2!$A:$A,1,0),"Not in Book")  

另请注意,当公式中使用字符串文字时,引号会加倍:""Not in Book""

编辑(接受后):

您也可以使用FormulaR1C1路线:

MWS.Cells(LastMWSR + 2, 1).FormulaR1C1 = "=IFERROR(VLOOKUP(R" & LastMWSR + 1 & "C3,'HBWS_Name'!C1,1,0),""Not In Book"")"

答案 1 :(得分:0)

这是如何将公式输入单元格的一般示例(您可以根据需要对范围进行修改)。

Thisworkbook.Sheets("Sheet1").Range("A1").Formula = "=VLoookup(A1,B:C,2,0)"

基本格式如下,并带有以下两个变量:" YourRange"和[公式]

  

YourRange.Formula =" = [公式]"

答案 2 :(得分:0)

应该是这样的 - 只需注意,您需要在$A:$A前面添加工作表参考:

Sub Test()

MarkConfirm = "=IFERROR(VLOOKUP(" & MWS.Cells(LastMWSR + 1, 3) & ", $A:$A, 1, 0), ""Not in Book"")"
MWS.Cells(LastMWSR + 1, 1).Formula = MarkConfirm

End Sub

答案 3 :(得分:0)

尝试使用Range.Formula属性而不是Range.Valuehttps://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-formula-property-excel

答案 4 :(得分:0)

试试这个。您需要使用相关的工作表名称替换HBWS。

MWS.Cells(LastMWSR + 1, 1).Formula = "=IfError(VLookup(C" & LastMWSR + 1 & ",HBWS!A:A, 1, 0), ""Not in Book""))"