【发布时间】:2020-03-03 20:21:42
【问题描述】:
我刚开始使用 VBA。 我有一个有两张纸的工作簿。在第一张纸上,在“D”列中,我有零件编号。 在第二张纸上,我再次在“A”列中有部件号,在“B”列中有每个部件号的描述。 在 Sheet1 上,我想收集以下数据:
- 如果 Sheet2 列“A”包含来自 Sheet1 列“D”的零件号,则列“O”值需要是 Sheet2 列“B”。
现在通过录制宏自己使用Vlookup:
Application.CutCopyMode = False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],'RIG MB'!C[-14]:C[-13],2,0)"
Range("O2").Select
Selection.AutoFill Destination:=Range("O2:O3430")
Range("O2:O3430").Select
我需要一个 vba 代码,但不是 vlookup 工作表功能,我需要更快的东西。 我也想循环它,直到 Sheet1 列“D”中有数据。 提前谢谢你!
【问题讨论】:
-
希望不使用“Vlookup()”或任何其他功能就不可能带来数据。如果是宏,还需要使用“Vlookup()”或任何其他匹配函数。我已经通过录制宏尝试了您的方法,它通过自动“Vlookup()”工作正常并粘贴特殊相同。如果您想知道录制宏的步骤,请告诉我,我会在答案中发布相同的内容。
-
我录制了宏,但是速度很慢,因为我已经使用了 5000 多行。我需要一个代码,它处理行直到它们有值,而不是一个确切的范围(因为我向 Sheet2 添加了更多行,所以我现在也必须更新宏
-
您能否通过修改您的问题上传查询。您已经尝试通过录制宏。所以,可以理解为什么它很慢。
-
可以用字典,会快很多。
标签: excel vba conditional-statements vlookup