我正在撰寫一個宏來比較兩列的單元格。如果要比較的單元格中包含的字串匹配,則從新單元格寫入來自相鄰單元格的值。我測驗了我的回圈并且它們正在作業,但是在將單元格值寫入新單元格時我無法弄清楚問題。
Sub Compare()
Dim i As Integer
Dim j As Integer
Dim RowNumberData As Long
Dim RowNumberConstant As Long
Dim DataRange1 As String
Dim ConstantRange1 As String
Dim DataRange2 As String
Dim ConstantRange2 As String
RowNumberData = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
RowNumberConstant = Sheet2.Cells(Rows.Count, 3).End(xlUp).Row
For i = 1 To RowNumberConstant
Let ConstantRange1 = "C" & i
Let ConstantRange2 = "D" & i
For j = 1 To RowNumberData
Let DataRange1 = "A" & j
Let DataRange2 = "B" & j
If StrComp(DataRange1, ConstantRange1, vbTextCompare) = 0 Then
Sheet2.Range(ConstantRange2).Value = Sheet2.Range(DataRange2).Value
End If
Next j
Next i
End Sub
uj5u.com熱心網友回復:
您的...Range#變數不是范圍,但字串,所以你StrComp在比較"C1",以"A1"在這些細胞中不值
Sub Compare()
Dim i As Integer
Dim j As Integer
Dim RowNumberData As Long
Dim RowNumberConstant As Long
Dim DataRange1 As Range
Dim ConstantRange1 As Range
Dim DataRange2 As Range
Dim ConstantRange2 As Range
RowNumberData = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
RowNumberConstant = Sheet2.Cells(Rows.Count, 3).End(xlUp).Row
For i = 1 To RowNumberConstant
Set ConstantRange1 = Sheet2.Range("C" & i)
Set ConstantRange2 = Sheet2.Range("D" & i)
For j = 1 To RowNumberData
Set DataRange1 = Sheet2.Range("A" & j)
Set DataRange2 = Sheet2.Range("B" & j)
If StrComp(DataRange1, ConstantRange1, vbTextCompare) = 0 Then
ConstantRange2.Value = DataRange2.Value
Exit For
End If
Next j
Next i
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/358946.html
