Excel のデータ セットが非常に膨大な量を超えているため、どちらもメモリ不足になる 2 つの手順があります。
Sub format()
Dim x, Y(), i&, j&, k&, s
x = Range("A1", Cells(1, Columns.count).End(xlToLeft)).Value
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For i = 1 To UBound(x, 2)
.Item(x(1, i)) = i
Next i
x = Application.Trim(Range("BL3", Cells(Rows.count, "BL").End(xlUp)).Value)
ReDim Y(1 To UBound(x), 1 To .count): j = 1
For i = 1 To UBound(x)
If InStr(x(i, 1), "==") = 0 Then
s = Split(x(i, 1))
If .Exists(s(0)) Then
k = .Item(s(0)): Y(j, k) = mid(x(i, 1), Len(s(0)) + 2)
End If
Else
j = j + 1
End If
Next i
End With
[a2].Resize(j, UBound(Y, 2)).Value = Y()
End Sub
上記は、データの列を複数の行/列に分割/トリミングするために使用してきた手順です。
私はデータを 2 つの列に入れました。それぞれが 60k 行で構成されています。必要なことは、BL を介して読み取り、BO を介して読み取り、中断したところから続行して、最初の行から新しい行の下に 2 番目の行のデータを配置することです。終了した