你能帮我解决一下我的担忧吗? 我有3张,sheet1,sheet2和sheet3。 我想比较sheet1和sheet2中的excel值或文本。 Sheet1包含从A列到C的值。但是,与Sheet 2列A比较的唯一值是Sheet A中A列中的值。一旦两个列(Sheet1中的A和sheet2中的A)被比较相同的值,输出将显示在sheet3中。将显示两列(A sheet1和sheet2)的相同值,包括B列和C列中的值。我的代码正在运行,但不能包含相同值的B列和C列中的值。谢谢你能给我的任何帮助。
sheet1:
columnA | columnB | columnC
C2S3 | L9 | 229号可用
C2S14 | LBS |号码221229
C2S17 | LQP |编号222726
C3S90 | LQSH2 |编号222729182
C3S91 | LQSH2 |编号222729190
C3S9 | PLR |号码262228
C3S10 | RFFH |编号28161618
C3S11 | BWT1s |编号123330129
表2:
columnA |
C2S3
C2S14
C2S17
C3S1
C3S5
C3S9
C3S10
C3S11
C3S12
C3S14
C3S15
sheet3输出:
C2S3 | L9 | 229号可用
C2S14 | LBS |号码221229
C2S17 | LQP |编号222726
C3S9 | PLR |号码262228
C3S10 | RFFH |编号28161618
C3S11 | BWT1s |编号123330129
继承我的代码:
Private Sub CommandButton1_Click()
Dim oldRow As Integer
Dim newRow As Integer
Dim i As Integer
i = 1
For oldRow = 1 To 300
For newRow = 1 To 300
If StrComp((Worksheets("Sheet1").Cells(oldRow, 1).Text),
(Worksheets("Sheet2").Cells(newRow, 1).Text), vbTextCompare) <> 0
Then
i = oldRow
Worksheets("Sheet3").Cells(i, 3) = "" 'clear the cells
Else
Worksheets("Sheet3").Rows(newRow).Value =
Worksheets("Sheet2").Rows(newRow).Value
i = i + 1
Exit For
End If
Next newRow
Next oldRow
MsgBox "Done Compare", vbOKOnly
End Sub
答案 0 :(得分:1)
试试这个,看它是否有效。我无法遵循代码中的一些逻辑。我认为我的建议应该将Sheet3中oldRow的A,B和C列设置为Sheet1中oldRow的值。
你有这些代码行。
Worksheets("Sheet3").Rows(newRow).Value =
Worksheets("Sheet2").Rows(newRow).Value
试试这个,看看它是否适合你。
Worksheets("Sheet3").Cells(oldRow, 1).Value = Worksheets("Sheet1").Cells(oldRow, 1).Value
Worksheets("Sheet3").Cells(oldRow, 1).Offset(0, 1).Value = Worksheets("Sheet1").Cells(oldRow, 1).Offset(0, 1).Value
Worksheets("Sheet3").Cells(oldRow, 1).Offset(0, 2).Value = Worksheets("Sheet1").Cells(oldRow, 1).Offset(0, 2).Value