每天工作,我有大约400个独特的值,我需要在一个不同的工作表中搜索该值,并将相应的值拉回原来的工作表。我想我应该尝试一下自动化,因为CRTL,CRTL,CRTL一天有400次,这是令人难以置信的乏味。
为了更好地解释这一点,我在下面设置了一个场景:
Worksheet("BattleOfEndor")
名字
韩索洛
RedLeader1
RedSquadron1
RedSquadron2
RedSquadron4
BlueLeader1
BlueSquadron4
工作表(“叛乱者联盟人员:船舶和武器偏好”)
(假设空格是列间隔)
船名武器
Luke_Skywalker X翼光剑
Leia_Skywalker N/A喷射器
Gial_Ackbar Home_One N/A
Han_Solo YT-1300_4927ZED鼓风机
RedLeader1 X翼鼓风机
RedSquadron1 X翼鼓风机
RedSquadron2 X翼鼓风机
RedSquadron3 X翼鼓风机
RedSquadron4 Y-翼喷射器
RedSquadron5 Y-翼喷射器
BlueLeader1 Z-95型喷射器
BlueSquadron1 X翼鼓风机
BlueSquadron2 X翼鼓风机
BlueSquadron3 Y-翼喷射器
BlueSquadron4 Y-翼喷射器
BlueSquadron5 Y-翼喷射器
因此,无论谁是战斗的第一位,我希望我的代码在我的备用表中找到他/她,复制他/她的ship值并粘贴到战斗电子表格的相邻列中,然后移动到战斗中的下一个人,以确定他们喜欢飞哪艘船。
Dim Count As Integer
Dim Target As String
While Count < 433
Count = Count + 1
Target = Worksheets("BattleOfEndor").Range("A2:A433").Cells(Count)
With Worksheets("Rebel Alliance Personnel: Ship and Weapon Preferences").Range("H2:H433")
Dim C As Range
Set C = .Find(Target, LookIn:=xlValues)我已经从其他一些与.find或.findnext相关的答案中复制了很多上面的内容,但是我很难理解接下来的步骤是什么。
有什么想法吗?我离得很近吗?
发布于 2015-11-18 22:20:07
你不可能有":“的工作表,
尝试这个循环代码,相应地更改工作表的名称。
Sub Button1_Click()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim LsRw As Long, Rng As Range, c As Range, x As Range
Dim Lr As Long, Wrng As Range
Set sh1 = Sheets("Names")
Set sh2 = Sheets("Weapons")
With sh1
LsRw = .Cells(.Rows.Count, "A").End(xlUp).Row
Set Rng = .Range("A2:A" & LsRw)
End With
With sh2
Lr = .Cells(.Rows.Count, "H").End(xlUp).Row
Set Wrng = .Range("H2:H" & Lr)
End With
For Each c In Rng.Cells
For Each x In Wrng
If x = c Then
c.Offset(0, 1) = x.Offset(0, 1)
c.Offset(0, 2) = x.Offset(0, 2)
End If
Next x
Next c
End Subhttps://stackoverflow.com/questions/33790917
复制相似问题