希望编写vba代码将两个Excel工作表中的数据合并到一个工作表中
我知道这个问题很广泛,但我很感激你能给予我的任何帮助 手头的任务是从一个非常凌乱的工作表(称为“Monkey”)中提取数据,并将其排序到另一个工作表(称为“Master”)中。有一列名为“name”,这是两个电子表格之间唯一的常量。我想写一个宏,它将取“constant”列的第一行,在Monkey的constant列中找到同一行,然后开始复制粘贴相关信息 到目前为止,我得到的是:希望编写vba代码将两个Excel工作表中的数据合并到一个工作表中,excel,vba,Excel,Vba,我知道这个问题很广泛,但我很感激你能给予我的任何帮助 手头的任务是从一个非常凌乱的工作表(称为“Monkey”)中提取数据,并将其排序到另一个工作表(称为“Master”)中。有一列名为“name”,这是两个电子表格之间唯一的常量。我想写一个宏,它将取“constant”列的第一行,在Monkey的constant列中找到同一行,然后开始复制粘贴相关信息 到目前为止,我得到的是: Sub Test() Dim Rng As Range Dim i As Long i =
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
子测试()
变暗Rng As范围
我想我会坚持多久
i=2
Application.ScreenUpdating=True
而我你可以这样开始:
- 定义Master和Monkey的常量名称范围
- 对于Master的每个值,搜索等效的monkey
- 如果发现猴子等价物,做你想做的
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
改进:
- 在范围上使用.end(xlDown)查找最后一行,而不是将其设置为静态
谢谢!我找到了另一份工作,但这些信息非常有用。干杯