创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