创build一个VBAmacros查找和复制?

我需要一个macros的Excel一点帮助。

我需要创build一个macros自动查找用户,并复制我在另一张表中的值:

我有一个工作表,其中包含用户和他们的杀死和死亡,我创build3张(3个不同的用户组),我需要macros的副本值自动查找用户和复制值。

在这里输入图像说明

图像来更好地描述它:

在这里输入图像说明

—-(复制这个值)—–>

在这里输入图像说明在这里输入图像说明

你不需要这个macros,使用工作表functionVLOOKUP就足够了。

举个例子,如果你有第一行的标题和A列的用户,那么你放入单元格B2(第一个用户的杀死数量)是=VLOOKUP($A2;Values!$A$2:$C$9;2;FALSE)和C2将会是=VLOOKUP($A2;Values!$A$2:$C$9;3;FALSE)

该函数的参数(您也可以在链接文档中find)是:

  • 首先,你正在寻找的价值,在你的情况下,无论是在A2
  • 接下来,您想要从 – vlookup返回结果的数组数组只能查看第一列,但既然您想从其他列返回结果,我们在公式中包含列A:C。
  • 你search的范围中的哪一列返回的结果是第二列,第二列是死亡第三列。
  • 最后是你想要一个完全匹配( false )或者如果一个近似的一个是好( true )。

如果我明白你在做什么,你应该可以用VLOOKUP来做到这一点

(不需要VBA)

以下源代码解决您的问题。

 Option Explicit Dim MyResultWorkbook As Workbook Dim ValuesWorksheet As Worksheet Dim SniperWorksheet As Worksheet Dim ARsWorksheet As Worksheet Sub CopyResult() Set MyResultWorkbook = ActiveWorkbook Set ValuesWorksheet = MyResultWorkbook.Sheets("Values") Set SniperWorksheet = MyResultWorkbook.Sheets("Sniper") Set ARsWorksheet = MyResultWorkbook.Sheets("Ars") Dim SniperLastRow As Long Dim ARLastRow As Long Dim RowPointer As Long Dim ValuePointer As Long ValuePointer = 2 'Update the Sniper worksheets SniperLastRow = SniperWorksheet.Cells(SniperWorksheet.Rows.Count, "A").End(xlUp).Row For RowPointer = 2 To SniperLastRow Do While (SniperWorksheet.Range("A" & RowPointer).Value <> ValuesWorksheet.Range("A" & ValuePointer).Value) ValuePointer = ValuePointer + 1 Loop SniperWorksheet.Range("A" & RowPointer).Offset(0, 1).Value = ValuesWorksheet.Range("A" & ValuePointer).Offset(0, 1).Value 'copy kill SniperWorksheet.Range("A" & RowPointer).Offset(0, 2).Value = ValuesWorksheet.Range("A" & ValuePointer).Offset(0, 2).Value 'copy death ValuePointer = 2 Next 'Update the Ars worksheets ARLastRow = ARsWorksheet.Cells(ARsWorksheet.Rows.Count, "A").End(xlUp).Row For RowPointer = 2 To ARLastRow Do While (ARsWorksheet.Range("A" & RowPointer).Value <> ValuesWorksheet.Range("A" & ValuePointer).Value) ValuePointer = ValuePointer + 1 Loop ARsWorksheet.Range("A" & RowPointer).Offset(0, 1).Value = ValuesWorksheet.Range("A" & ValuePointer).Offset(0, 1).Value 'copy kill ARsWorksheet.Range("A" & RowPointer).Offset(0, 2).Value = ValuesWorksheet.Range("A" & ValuePointer).Offset(0, 2).Value 'copy death ValuePointer = 2 Next End Sub