论坛和vba的新手,但想了解更多。
有两个大数据表,想要查找一个单元格值,该单元格值等于表1中活动单元格左侧的单元格值,然后在第二个表格中找到该值。找到值时,我想将第5列中找到的单元格值返回到第2列中A列的右侧。
我创建的宏运行良好 - 如果不是它总是查找相同的值“10.136.32.10”,即此值不会随着活动单元格向下移动表1而改变。我想要的值根据从单元格向左复制的内容进行更改。有没有办法做到这一点?我使用 Ctrl + f 函数,然后粘贴从表1中复制的单元格值
拥有以下宏:
Sub Makro2()
'
' Makro2 Makro
'
'
ActiveCell.Offset(0, -1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SKF-NOV-6-2017").Select
Cells.Find(What:="10.136.32.10", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.End(xlToLeft).Select
ActiveCell.Offset(0, 4).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("All Equipment").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
答案 0 :(得分:0)
以下是您可以完成工作的代码。此宏立即搜索所有行。如果您只需要搜索活动单元格,则需要删除循环。
Sub macro2()
Dim lr As Long, r As Long, c As Long
Dim str As String
lr = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To lr
str = Cells(r, c).Offset(0, -1)
Sheets("SKF-NOV-6-2017").Select
Cells.Find(What:=str, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.End(xlToLeft).Select
ActiveCell.Offset(0, 4).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("All Equipment").Select
Cells(r, c + 1).past
Next r
End Sub