![](/img/trans.png)
[英]VBA - If value in sheet1 found in sheet2, then delete data from sheet2
[英]Excel VBA - Search for value from sheet1 in sheet2 and update with adjacent value from sheet1
我正在尝试编写一些VBA代码,这些代码将采用sheet2上A列的唯一值列表中的第一个值,并针对sheet1上A列的唯一值进行搜索。 一旦找到,它将使用与sheet2中唯一代码相邻的值来更新sheet1上活动单元格右侧的单元格6。 它将继续进行,在sheet2中的其余列表中运行,直到到达空白单元格为止。
我设法获取了代码以查找唯一值,然后通过添加1将单元格6更新到右侧,但是我无法计算出另一位:
Private Sub SinglePaste_Click()
On Error GoTo InvalidBarcode
Dim EAN As Range
Sheets("Paste Here").Select
For Each EAN In ActiveSheet.Range("A:A")
Sheets("Master Stock File").Select
With Worksheets("Master Stock File")
.Range("A:A").Find(What:=EAN, After:=.Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(0, 6).Select
ActiveCell.Value = ActiveCell.Value + 1
End With
If IsEmpty(EAN) Then Exit For
Next EAN
Exit Sub
InvalidBarcode:
MsgBox ("Invalid Barcode - " & "" & EAN)
End Sub
这有意义吗? 任何帮助是极大的赞赏。
您的代码使用了大量的ActiveSheet,ActiveCell和Select,它们表示宏记录器,通常效率较低。 我仍然不确定您指的是“另一位”,但这是一个经过重做的宏:
Public Sub NewSinglePaste_Click()
Dim EAN As Range
Dim FoundRange As Range
Dim ValueCell As Range
Dim MasterSheet As Worksheet
Dim PasteSheet As Worksheet
Set MasterSheet = Sheets("Master Stock File")
Set PasteSheet = Sheets("Paste Here")
On Error GoTo InvalidBarcode
For Each EAN In PasteSheet.Range("A:A")
If IsEmpty(EAN.Text) Or EAN.Text = "" Then Exit For
Set FoundRange = MasterSheet.Range("A:A").Find(What:=EAN, _
After:=MasterSheet.Range("A1"), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not (FoundRange Is Nothing) Then
Set ValueCell = FoundRange.Offset(0, 6)
ValueCell.Value = ValueCell.Value + 1
Else
Debug.Print "Cell not found: " & EAN.Worksheet.Name & "!" & EAN.Address
End If
Next EAN
Exit Sub
InvalidBarcode:
MsgBox ("Invalid Barcode - " & "" & EAN)
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.