我知道这个问题非常广泛,但我很感激您能给予的任何帮助。
手头的任务是从非常混乱的工作表(称为" Monkey")中获取数据并将其分类到另一个工作表(称为" Master")。有一列名为" name"这是两个电子表格之间唯一的常量。我想写一个宏,它将采取"常量"的第一行。列,在Monkey的常量列中找到相同的行,然后开始复制粘贴相关信息。
到目前为止我所拥有的是:
Sub Test()
Dim Rng As Range
Dim i As Long
i = 2
Application.ScreenUpdating = True
While i <= 133
Set Rng = Range("E" & i)
If Rng = Worksheets("Monkey").Rng(, -16) Then
Range("E138").Select
ActiveCell.FormulaR1C1 = "Success!"
Else
i = i + 1
End If
Wend
End Sub
-
这只是为了测试匹配的vba代码部分(打印&#39;成功&#39;如果找到匹配&#39;)实际的复制粘贴子我自己写的,但是现在,任何人都可以帮助这个循环吗?常量列在主服务器上是E,在猴子上是U.将E2设置为范围是否有效,每次都找不到正确的行?
我愿意自己做很多实验,所以即使是最微小的建议也会有很大的帮助。
答案 0 :(得分:1)
你可以从类似的东西开始:
如果找到了猴子等同物,那就做你想要的了
Public Sub Test()
Dim cellMaster As Range, cellMonkey As Range
Dim rngMasterCst As Range, rngMonkeyCst As Range
' Set constants columns from master and monkey
Set rngMasterCst = Worksheets("master").Range("A1:A500")
Set rngMonkeyCst = Worksheets("monkey").Range("A1:A500")
' For each constant of master
For Each cellMaster In rngMasterCst
' Search for the value in Monkey
Set cellMonkey = rngMonkeyCst.Find(cellMaster, LookIn:=xlValues)
' if the value is find
If Not cellMonkey Is Nothing Then
' Here cellMaster and cellMonkey have the same "constant name"
' Navigate in the row with the help of .Offset()
End If
Next
End Sub
改进: