Excel宏(VBA),用于对照另一工作簿中的列表检查单元格值

Excel宏(VBA),用于对照另一工作簿中的列表检查单元格值,vba,excel,Vba,Excel,我有两个工作簿,一个是我们称之为WB 1的数据,需要将k列中的值与另一个工作簿中的值进行核对,我们称之为WB 2,其中包含条目的真实值。每个条目都附有一个数量,因此价格会根据数量而变化。WB 1在一个列表中,每行有条目,WB 2在每行有条目,每列是该数量的价格。我需要一个宏来检查这些值,并用WB 2中的正确值替换WB 1上的任何值 示例数据: WB 1 | Column A | Column C | Column K | ---------------------------

我有两个工作簿,一个是我们称之为WB 1的数据,需要将k列中的值与另一个工作簿中的值进行核对,我们称之为WB 2,其中包含条目的真实值。每个条目都附有一个数量,因此价格会根据数量而变化。WB 1在一个列表中,每行有条目,WB 2在每行有条目,每列是该数量的价格。我需要一个宏来检查这些值,并用WB 2中的正确值替换WB 1上的任何值

示例数据:

WB 1
    | Column A  | Column C | Column K |
     ---------------------------------
    | Item Name |    30    |  $5.42   |

WB 2
    | Column A  | Column F | Column G | Column H | ... |
                     15         30         45
     --------------------------------------------------
    | Item Name |  $2.86   |   $4.53  |  $6.00   | ... |

您可以使用vlookup执行搜索,并按照下面的说明进行操作,以获得更好的性能

将WB1设置为源工作,将WB2设置为目标工作

在WB1中选择带有For循环的项。确保选择了适当的列及其元组

对于rowIndex=2到lastRow

或者使用一个范围

在搜索之间执行vlookup

在所需列中粘贴/显示输出

增加循环下一行索引

如果您需要确切的代码片段,请告诉我

问候,,
Mani

下面是代码片段

*要记住的要点

阶段1:加载工作簿

您需要首先按路径引用源工作簿,或将其称为加载工作簿。 然后将源工作簿sayset sourceworkbook=从路径派生的工作簿分配给变量 stackoverflow中有许多代码可以实现相同的功能。 第2阶段:计算/操作/逻辑

lastRow = SourceData.Rows.Count

For rowIndex= 2 to lastRow
  lTemp = sourceWorksheet.Cells(rowIndex, "Q").Value
  lDigit = VLOOKUP( value, table, index_number, [not_exact_match] )  'not_exact_match is usually false
  DestinationWorksheet.Cells(rowIndex, "AM").Value = lDigit
next rowIndex
[请记住声明具有与您的要求相匹配的适当数据类型的变量]/

问候,,
Mani

是什么阻止了你实现这一目标?仅描述您需求的问题通常在此处结束。哦,对不起!完全忘了张贴原因。我无法使用vba加载引用文件。此外,我一直很难根据两个数据点逐行搜索和替换,这两个数据点用于定义特定单元格的正确单元格值代码片段将受到赞赏,因为我不太熟悉在Excel中执行有关引用的操作。谢谢你的快速回复