私は VBA を初めて使用し、このコードをより簡単かつ効率的に記述する方法が必要であることは知っていますが、正しい機能 (既存のデータを貼り付けずに次のワークシートに貼り付ける方法など) に慣れていません。小さいワークシートでは機能しますが、60000 行以上のワークシートで使用する必要があります。どんな助けでも大歓迎です。前もって感謝します。
Sub test()
Dim row As Long
With Excel.Application
.ScreenUpdating = False
.Calculation = Excel.xlCalculationManual
.EnableEvents = False
End With
For row = 1 To 65500
If ThisWorkbook.ActiveSheet.Cells(row, 14) <> "" Then
ThisWorkbook.ActiveSheet.Cells(row, 1).EntireRow.Copy
ThisWorkbook.ActiveSheet.Paste Destination:=ThisWorkbook.Sheets("SCO").Cells(row, 1)
ThisWorkbook.ActiveSheet.Cells(row + 1, 1).EntireRow.Copy
ThisWorkbook.ActiveSheet.Paste Destination:=ThisWorkbook.Sheets("SCO").Cells(row + 1, 1)
End If
Next
For row = 1 To 65500
If ThisWorkbook.Sheets("SCO").Cells(row, 14) = "" Then
ThisWorkbook.Sheets("SCO").Cells(row, 20).Value = 2
End If
Next
For x = 65500 To 1 Step -1
If ThisWorkbook.Sheets("SCO").Cells(x, 3) = "" Then
ThisWorkbook.Sheets("SCO").Cells(x, 1).EntireRow.Delete
End If
Next
For row = 1 To 65500
If ThisWorkbook.Sheets("SCO").Cells(row, 20) = 2 Then
ThisWorkbook.Sheets("SCO").Cells(row + 1, 1).EntireRow.Insert shift:=xlDown
End If
Next
With Excel.Application
.ScreenUpdating = True
.Calculation = Excel.xlAutomatic
.EnableEvents = True
End With
End Sub