【问题标题】:Excel VBA macro Script : Find value from Sheet 1 in Sheet 2 and Copy Value foundExcel VBA宏脚本:从Sheet 2中的Sheet 1中查找值并找到复制值
【发布时间】:2015-02-25 03:21:30
【问题描述】:

我面临以下挑战:我有一个 Excel 表,其 A 列的值(例如,、、C Klasse、A Klasse、Golf、Astra")。

在第二张表上,我有 2 列 A 和 B,其中包含以下信息:A 列、梅赛德斯、欧宝、大众等。”在 B 列上,我有以下信息、C Klasse、A Klasse、Golf、Astra "(与表 1 A 列中的信息相同)。

目标:从工作表 1 中查找值,工作表 2 列 B 中的 A 列 -> 从工作表 2 列 A 复制值 -> 粘贴到工作表 1 列 M。

示例:A2 = C Klasse -> 在工作表 2 中查找 ,,C Klasse'' -> 在 B42 中找到 ,,C Klasse'' -> 从 A42 复制内容 ,,Mercedes'' -> 粘贴 M2。

这是我想出的代码,我刚开始,所以请多多包涵:

Range("A2").Select
Selection.Copy
Sheets("Form2").Select
Cells.Find(What:=Range("A2"), After:=ActiveCell, _
    LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Range("A193").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Form1").Select
Range("M2").Select
ActiveSheet.Paste

【问题讨论】:

  • 嘿@Siddarth Rout,我的请求比第 4 节更复杂(尽管对于像我这样的新手来说是一本好书)在你的例子中你有这样的数据: B5 = J5 。这不是我的情况。我的数据更像 B5 = A22(来自不同的工作表)。
  • 所以你需要相应地设置范围:) 同样的原则也适用......想象一下数据在另一张纸和 Col A 中......
  • 这是我编辑的唯一部分: 'Set ws = Worksheets("Form1") Set UpdateRange = ws.Range("A2:A30") Set ws = Worksheets("Form2") Set DataRange = ws.Range("B1:B500")'
  • 你能张贴你的数据的截图吗?

标签: vba excel


【解决方案1】:

所以这个问题是通过使用 Excel 公式 VLOOKUP 而不是 VBA 解决的。

公式如下所示:=VLOOKUP(A2,Ressort!$A$1:$B$232,2,FALSE)

非常感谢@Siddharth Rout - 他是让我大开眼界的人! :)

【讨论】:

  • + 1 自己解决:)
  • 对于新用户,上面的Ressort是第二张表的名字,不是排序命令。更适合初学者在示例中使用 SheetA、SheetB 等。
猜你喜欢
  • 2019-01-02
  • 2021-11-30
  • 2020-07-18
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 2017-06-11
  • 1970-01-01
  • 2020-12-29
相关资源
最近更新 更多