Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Vba 带按钮点击的VLOOKUP_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba 带按钮点击的VLOOKUP

Vba 带按钮点击的VLOOKUP,vba,excel,excel-2010,Vba,Excel,Excel 2010,我正在尝试编写一些代码,用于单击按钮执行VLOOKUP 表1=付款单,表2=全局,表3=明细 按钮将位于“付款单”页上 这是全局工作表中单元格的代码 O1==VLOOKUP(BA,细节!A:H,8,0) P1==VLOOKUP(BA,细节!A:H,6,0) Q1=VLOOKUP(BA,细节!A:H,5,0) 我需要这个循环遍历所有行,因为金额每个月都会发生变化,如果发现匹配,则执行VlookUp,如果未找到匹配,则从明细表中删除该行 例如:全局,单元格B1=27801。在详细信息中,找到匹配项,

我正在尝试编写一些代码,用于单击按钮执行VLOOKUP

表1=付款单,表2=全局,表3=明细

按钮将位于“付款单”页上

这是全局工作表中单元格的代码

O1=
=VLOOKUP(BA,细节!A:H,8,0)

P1=
=VLOOKUP(BA,细节!A:H,6,0)

Q1=
VLOOKUP(BA,细节!A:H,5,0)

我需要这个循环遍历所有行,因为金额每个月都会发生变化,如果发现匹配,则执行VlookUp,如果未找到匹配,则从明细表中删除该行

例如:全局,单元格B1=27801。在详细信息中,找到匹配项,然后执行O、P和Q列中的上述代码。 全局,B2=27802。在详细信息中,未找到匹配记录,行已删除。继续第3行和第4行……


我的建议是,将所有的值都放在表格中会更有效(而不是简单地输入excel单元格),您需要通过INSERT->table创建表格。它将如下所示:
对于详细信息,也请执行此操作:

返回全局工作表,只需输入1行公式,同一列中的其余行将具有相同的公式“样式”
O列:=VLOOKUP([BA列],表2[#全部],[1列]:[8列],[8,假)
P列:=VLOOKUP([BA列],详细信息!A:H,6,FALSE)
列Q:=VLOOKUP([BA列],详细信息!A:H,5,FALSE)


要删除不需要的行,只需过滤掉该列中的空白值即可。

到目前为止,你在VBA中做了什么?@Sam Hi,我现在什么都没有,我不知道从哪里开始,我对VBATry录制宏还是很陌生,看看你能想出什么代码?
Application.VLOOKUP(lookup_value,table_array,column_index,range_lookup)
@SiddharthRout,这是它产生的代码,我需要它在所有行中循环。range(“O1”)。选择ActiveCell.FormulaR1C1=“=VLOOKUP(RC[-13],Details!C[-14]:C[-7],8,0)”range(“P1”)。选择ActiveCell.FormulaR1C1=“=VLOOKUP(RC[-14],Details!C[-15]:C[-8],6,0)”range(“Q1”)。选择ActiveCell.FormulaR1C1=“=VLOOKUP(RC[-15],Details!C[-16]:C[-9],5,0)”范围(“Q2”)。选择谢谢您的回答,但我需要在单击按钮时进行。基本上,用户每月都会将新数据粘贴到全局和详细信息中,当单击一个按钮时,将自动执行VLookUps。在第一次创建后,将在表中自动执行查找。此外,如果用户继续在详细信息中输入数据工作表中,VLookup将在全局工作表中自动生成结果。因此,我们不需要使用按钮再次创建VLookup公式。使用查找循环是否更容易,因此在b列中查找数据,然后如果匹配,则将H列、F&E列复制到O列,P&QVLookup已执行您需要的所有要求,让我们以P列为例:=VLookup列([Column BA],Details!A:H,6,FALSE),它将搜索Details工作表A列的BA列,直到找到完全匹配(设置为FALSE)的H,然后将Details工作表中的H值复制到P列。因此,对于您的情况,您不需要编写宏,而是将数据放在表中(带标题)并将公式放在第一行数据中。这里有更多关于VLookup的解释,希望能澄清您的疑问