如何在vba中编写excel公式?

时间:2013-04-22 16:37:53

标签: excel excel-vba vba

我是vba的新手。我有一个excel公式,我想把它写成vba代码。但我有一个问题。我不知道如何去做。有谁能够帮我? 这是公式:

IFERROR(LOOKUP(2^15,SEARCH(G$6:G$8,B6),G$6:G$8),"")

实际上我在sheet2的G列中有一些关键字,我想在sheet1中从包含文本的sheet1中搜索它们。如果有任何匹配,我希望vba代码在第一张表中的列(例如D)中返回匹配的关键字,如果没有,则将相应的单元格留空。

我不知道该怎么做。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

即使您提供的描述与您提供的功能不匹配,我也会对此进行抨击。

我首先使用IsError函数和Application.Match来检查Sheet1上的范围(“B:B”)中是否找到了lookup_value

Dim lookup_value as String ' the value you're searching for.'
Dim found_value as String ' the value to return if a match is found.'

lookup_value = "edit this value!"  '<~~ This is the value you're searching for. Edit as needed.'

If Not IsError(Application.Match(lookup_value, Sheets("Sheet1").Range("B:B"),False) Then
    'If the above does not yield an error, then set the found_value based on VLOOKUP.'
    found_value = Application.WorksheetFunction.VLookup(lookup_value, Sheets("Sheet1").Range("B:D"),2,False)
Else:
    'If the MATCH function returns an error, set the found_value = vbNullString.
    found_value = vbNullString
End If

从此结果中,您只需将单元格值设置为函数found_value的结果。

ActiveCell.Value = found_valueRange("A1").Value = found_value