我想要做一個宏來比較一張紙上的值與另一張紙上的值並複製唯一的值。VBA宏來比較和增加值
說明:
我每週都會得到一堆ID(工作表A)。我想看看在過去的幾周裏,我已經使用了哪些這些ID(該列表位於Worksheet B上),並將Worksheet A中新的所有值複製到Worksheet B中。您可以將想要的結果看作Worksheet B(在運行宏之後)。
,我想出了一些代碼,但因爲我是新來的VBA,這是行不通的,我現在很絕望。感謝任何人的幫助。
Sub Mymacro()
Dim lastRowC As Long
Dim foundTrue As Boolean
Dim Data As Worksheet
Dim GivenValues As Worksheet
Dim IDs As Long
Dim fVal As Range
Set Data = Sheets("Worksheet B")
Set GivenValues = Sheets("Worksheet A")
lastRowC = Data.Cells(Rows.Count, 1).End(xlUp).Row
IDs = GivenValues.Cells(Rows.Count, 1).End(xlUp).Row
'imagine data in Worksheet B are in the first column
For i = 1 To IDs
Set fVal = Data.Range("A1:A" & lastRowC).Find(GivenValues.Cells(i, 1).Value, LookIn:=xlValues, LookAt:=xlWhole)
If fVal Is Nothing Then
GivenValues.Cells(i, 1).Copy
Sheets(Data).Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else: End If
Next i
End Sub
爲什麼不使用'WORKSHEETFUNCTION.COUNTIF',然後複製,如果返回的是0。此外,'範圍(「A1」)。Select'你應該指的是2和選擇時,與張前綴的範圍。無需選擇,例如'Range(「A1」)。End(xlDown).offset(1,0).pastespecial' –