可以说我有两片,薄板1和表2Excel的VBA - 删除/记录从片材复制到另一个
我在Sheet四列并且在片材3个类似的列标题2.
如果在工作表2中找不到工作表1中的记录,它将被删除。
从片材2的记录被复制到片材1,如果它不是已存在于片1
Sheet 1中我有以下列
Name Age Gender Group
I 25 M A1
A 24 M B1
M 23 M C1
E 23 M D1
在表2中,我有下面列
Name Age Gender
F 25 M
A 24 M
M 23 M
而且我的输出必须在Sheet1:
Name Age Gender Group
A 24 M B1
M 23 M C1
F 25 M
注意:每个记录每次按照名称,年龄和性别的组合而不仅仅是名称而被删除/复制。
我创建了一个使用VBA的连接列,现在失去了想法。
For j = 2 To lastrow
strA = Sheets(TabName).Range("A" & j).Value
strB = Sheets(TabName).Range("B" & j).Value
StrC = Sheets(TabName).Range("C" & j).Value
Range(CombinedKeyColLet & j).Value = Application.WorksheetFunction.Concat(strA & strB & StrC)
Cells.Select
Selection.Columns.AutoFit
Next
'Copy or Delete code
'--------------------------------'
下面是代码,我正在用在错误的方法
CombinedKeyCol = WorksheetFunction.Match("CombinedKey", Sheets(TabName1).Rows(1), 0)
CombinedKeyColLet = GetColumnLetter(CombinedKeyCol)
For i = lastrow To 2 Step -1
Sheets(TabName2).Activate
CombinedKeyVal = Range(CombinedKeyColLet & i).Value
On Error GoTo Jumpdelete
Present = WorksheetFunction.Match(CombinedKeyVal, Sheets(TabName1).Columns(6), 0)
If Present <> "" Then
GoTo Jumpdontdelete
End If
Jumpdelete:
Sheets(TabName2).Activate
Rows(i & ":" & i).Delete
Present = ""
Jumpdontdelete:
Present = ""
Next
输出到Sheet1或Sheet2?您指定Sheet1,但这看起来不正确,因为您完全删除了“Group”列。 –
输出在sheet1 – Sid29
I和M项目会发生什么?他们为什么不出现在输出中? –