Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 无法使用VBA进行查找_Excel_Vba_Vlookup - Fatal编程技术网

Excel 无法使用VBA进行查找

Excel 无法使用VBA进行查找,excel,vba,vlookup,Excel,Vba,Vlookup,需要帮助以VBA编码vlookup,尝试从“account number”文本下方的“client account number”单元格中获取销售代表的姓名 根据客户账号“B2”,需要在另一张表上填写,将KAM名称返回至“A2” 有人能帮忙挑战吗?提前谢谢你 "column A" "column B" ROW1 KAM Customer account ROW2 10002 ROW3

需要帮助以VBA编码vlookup,尝试从“account number”文本下方的“client account number”单元格中获取销售代表的姓名

根据客户账号“B2”,需要在另一张表上填写,将KAM名称返回至“A2”

有人能帮忙挑战吗?提前谢谢你

     "column A"         "column B"
ROW1   KAM          Customer account
ROW2                    10002
ROW3                    Date
ROW4                    13/02/2019
ROW5                    Currency
ROW6    
ROW7                    Customer account
                    10003
                    Date
                    29/08/2019
                    30/08/2019
                    12/09/2019
                    18/09/2019
                    25/09/2019
                    27/09/2019
                    Currency

您可以使用
Find
Offset
方法查找此类数据表中的名称。以下是供您参考的样本代码:

Dim Rng As Range
Set Rng = Range("B:B").Find("10002")
If Not Rng Is Nothing Then
MsgBox Rng.Offset(-1, -1)
End If

您的问题不是很清楚,但是您应该能够使用
索引
匹配
来获得结果,而不是使用
VLOOKUP
(不使用
VBA
)。尝试以下公式:
索引(Sheet1!$A:$A,匹配(“客户帐户”,Sheet1!$B:$B,0))
。这会将“KAM”返回到您输入公式的单元格中

更新:

在您的评论之后,以下内容将复制您正在尝试执行的操作:

Dim OutputRange As Range
Set OutputRange = Sheets("RAW DATA FILE").Range("A1:A50000")
OutputRange.FormulaR1C1 = "=IFERROR(IF(ISNUMBER(C2),INDEX(Sheet2!C,MATCH(Sheet1!C[1],Sheet2!C[2],0)),""""),"""")"

您尝试过的代码在哪里?您遇到了哪些问题?我们不是来为您编写所有代码的。是的,您是对的——不是我想要的。但是尝试了这么多代码行却一无所获。老实说,因为我需要查找文本“客户帐户”下方的号码,所以我甚至不知道从哪里开始。但将重新开始写入并返回以检查任何错误。非常感谢你的帮助你能查一下吗?获取语法错误。工作表(“原始数据文件”).RANGE(“A2”)。选择ActiveCell.FormulaR1C1=“=IFERROR(如果(ISNUMBER(C2),索引(Sheet2!C,MATCH(Sheet1!C[1],Sheet2!C[2],0)),“”),“”),“”)范围(“A1”)。选择Selection.AutoFill目标:=范围(“A1:A50000”)范围(“A1:A50000”).select我仍然无法正确理解问题。为什么要使用VBA?您到底想对上面的代码做什么?试图获取每个客户帐号的KAM名称谢谢。我有下面的错误“编译错误:SYBTAX错误”“。我已完成索引匹配,但在第1行出现语法错误,请检查以下表格(“原始数据文件”).RANGE(“a:a”)。选择ActiveCell.FormulaR1C1=“=IFERROR(如果(ISNUMBER(C2)、索引(Sheet2!C、MAtch(Sheet1!C[1],Sheet2!C[2],0))、”“、”“)”范围(“A1”)。选择Selection.AutoFill目标:=范围(“A1:A50000”)范围(“A1:A5”)。选择原始数据文件字符串后缺少一个
。看起来您只是想在前50000行中插入一个
索引/匹配
公式。为什么要使用VBA?现在使用VBA会出现错误:“运行时错误'9':sunscript超出范围”,因为有代码可以添加新列,删除一些列和行,然后获取客户端帐号的KAM名称