2つの異なるシートで2つの異なる行を表示するようにExcelを取得しようとしていますが、同じ列を使用して別の列の数値の移動を検証します。 どのようにして現在のループを取り除いてロード時間を短縮できますか?現在のところ、もと長くなります。 また、私はループを使用してはならないことを知って、私はそれはあなたが2枚に2枚からデータを格納する必要があり、プログラムの開始時に2つの異なる行をチェックして同じ列を確認する
Sub repeatingrows()
Dim oldsheet As Worksheet
Dim newsheet As Worksheet
Set newsheet = Application.ActiveSheet
Set oldsheet = ThisWorkbook.Worksheets(3)
Set newsheet = ThisWorkbook.Worksheets(2)
'CHECK IF THE ROWS ARE SIMILAIR TO PREVIOUS SHEET
Dim rrow As Integer
Dim srow As Integer
For rrow = 3 To 397
For srow = 3 To 397
If oldsheet.Cells(rrow, 2) = newsheet.Cells(srow, 2) Then
If oldsheet.Cells(rrow, 5) = newsheet.Cells(srow, 5) Then
If oldsheet.Cells(rrow, 6) = newsheet.Cells(srow, 6) Then
With newsheet
oldsheet.Range(oldsheet.Cells(rrow, 16), oldsheet.Cells(rrow, 19)).Copy
.Range(.Cells(srow, 16), .Cells(srow, 19)).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd
End With '^COPY AND PASTES THE ROW
Else
End If
Else
End If
Else
End If
Next srow
Next rrow
End Sub
比較のために 'worksheetfunction.match'または配列を使用してください。 –
ネストされた 'if'を使用する代わりに、' And'演算子を使ってすべてのステートメントを1つにまとめることができます。 –
@ Nathan_Savは、ループとifsの代わりに、それともifのものですか? – MaxAttack102