如果您熟悉Excel VBA,可以将其编写为宏并运行。
变量考虑这里,你可以改变他们根据你的要求:
- 用途Activesheet因此而与数据表处于活动状态,您必须使用宏
- 使用固定列数, 龙数据是在A列, 数据,以找到在列B至E从柱 输出开始Ĵ
Dim result, lastrow1, lastrow2, lastrow
lastrow1 = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
lastrow2 = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
For Y = 1 To lastrow1
result = Application.VLookup(ActiveSheet.Range("B" & Y),ActiveSheet.Range("A1:A16"), 1, False)
If Not IsError(result) Then
lastrow = ActiveSheet.Range("J" & Rows.Count).End(xlUp).Row + 1
ActiveSheet.Range("J" & lastrow) = result
ActiveSheet.Range("K" & lastrow) = Application.VLookup(ActiveSheet.Range("J" & lastrow), ActiveSheet.Range("B1:E" & lastrow2), 2, False)
ActiveSheet.Range("L" & lastrow) = Application.VLookup(ActiveSheet.Range("J" & lastrow), ActiveSheet.Range("B1:E" & lastrow2), 3, False)
ActiveSheet.Range("M" & lastrow) = Application.VLookup(ActiveSheet.Range("J" & lastrow), ActiveSheet.Range("B1:E" & lastrow2), 4, False)
End If
Next Y
我运行这个时出现错误:“外部程序无效”。我不熟悉VBA,我不知道如何解决这个问题。我只有一个模块正在运行。 – AustinGlad
在你的模块中必须有Sub ......()和End Sub之间的代码块,其中.....是宏名称。这将运行一个代码块,它是Excel VBA中的宏。所以要运行代码,它必须在Sub()....和End Sub之间。 ...是宏名称,它可能是您当前正在处理的宏,或者您可以通过在将代码粘贴后将它命名为Sub()MyNewMacro并将其作为新宏记录下来,并在结尾添加一行End Sub。希望这是明确的。 –
太好了。谢谢。 – AustinGlad