1 つの列の値に基づいていくつかの小さなワークシートに分割する必要がある Excel ワークシートがあります。コードはうまく機能しますが、行 10k を超えるとリソースが不足します。
最後の行を見つけようとしているときに問題があると思うので、メモリの問題を回避するためのより効率的な回避策があるかどうか疑問に思っていました。それとも、とにかくこれは問題ではありませんか?
コードは次のとおりです。
Sub Fill_Cells()
Dim masterSheet As Worksheet
Dim masterSheetName As String
Dim TRRoom As String, tabName As String
Dim lastRowNumber As Long
Dim j As Long
Application.ScreenUpdating = False
masterSheetName = "Master"
Set masterSheet = Worksheets(masterSheetName)
lastRowNumber = masterSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
j = 4
For Each c In masterSheet.Range("AB4:AB" & lastRowNumber).Cells
TRRoom = c.Value
tabName = "TR-" & TRRoom
localLastRowNumber = Worksheets(tabName).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
insertRow = localLastRowNumber + 1
Worksheets(tabName).Rows(insertRow).Value = masterSheet.Rows(j).Value
j = j + 1
Next
End Sub
誰かがこれで私を助けることができれば、私はそれを感謝します.