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到Vlookup值_Excel_Vba_Vlookup - Fatal编程技术网

跨多个Excel行和列的VBA到Vlookup值

跨多个Excel行和列的VBA到Vlookup值,excel,vba,vlookup,Excel,Vba,Vlookup,我有这样一份工作表: Name Num1 Num2 Num3 Num4 test1 test2 test3 test3 7% 6% 6% 6% test1 4% 5% 4% 5% test2 6% 6% 5% 4% 我试图创建一个宏按钮,根据名称列值将工作表下面部分的值复制到上面的空部分 我想可能是用了一个vlookup 以下部分中的值为公式形式,因此需要将其粘贴为带有数字格式的特殊值 结果如下: 这就是我迄今为止所

我有这样一份工作表:

Name   Num1 Num2 Num3 Num4
test1   
test2   
test3   


test3   7%   6%   6%   6%
test1   4%   5%   4%   5%
test2   6%   6%   5%   4%
我试图创建一个宏按钮,根据名称列值将工作表下面部分的值复制到上面的空部分

我想可能是用了一个
vlookup

以下部分中的值为公式形式,因此需要将其粘贴为带有数字格式的特殊值

结果如下:



这就是我迄今为止所尝试的:

Sub COPY()

  With Range("B2:B4")
    .Formula = "=VLOOKUP(A2,$A$8:$M$10,2,0)"
    .Value = .Value
  End With
End Sub

上面的代码只适用于一列,但我不知道如何在第3、4、5列上循环和执行

上述代码的结果:

Name   Num1 Num2 Num3 Num4
test1   4%   
test2   6%   
test3   7%   


test3   7%   6%   6%   6%
test1   4%   5%   4%   5%
test2   6%   6%   5%   4%

谢谢你的帮助。如果您有任何问题,请告诉我。

源范围A6:E9(带列标题)和目标范围A1:E4(带列标题)。您可以调整公式中的col.column以匹配源范围中所需的col编号

Sub vlkup()

Dim col As Range

For Each col In Range("B2:E4").Columns

With col
.Formula = "=VLOOKUP($A2,$A$6:$E$9," & col.Column & ",False)"
.Value = .Value ' to convert formula to values
End With

Next

End Sub

也许
=VLOOKUP(A2,$A$8:$M$10,column(),0)
可以让它变得动态?谢谢。但是范围是否也不需要更改?这是哪个范围?
对于范围(“B2:B4”)
@user3819867的公式在我看来,您可能需要调整布局的范围。
Sub vlkup()

Dim col As Range

For Each col In Range("B2:E4").Columns

With col
.Formula = "=VLOOKUP($A2,$A$6:$E$9," & col.Column & ",False)"
.Value = .Value ' to convert formula to values
End With

Next

End Sub