がたくさんあります:エクセルVBA私はこのコードを持っているメモリが不足しているが、メモリ
Sub reportCreation()
Dim sourceFile As Variant
Dim wbSource As Workbook
Dim wbDest As Workbook
Dim sourceSheet As Worksheet
Dim destSheet As Worksheet
Dim rng As Range
Dim i As Long
Dim NValues As Long
If sourceFile = False Then
MsgBox ("Select the MyStats file that you want to import to this report")
sourceFile = Application.GetOpenFilename
Set wbSource = Workbooks.Open(sourceFile)
Set sourceSheet = wbSource.Sheets("Test Dummy Sheet")
Set rng = sourceSheet.Range("A:N")
rng.Copy
Set wbDest = ThisWorkbook
Set destSheet = wbDest.Sheets("MyStats")
destSheet.Range("A1").PasteSpecial
Application.CutCopyMode = False
wbSource.Close
End If
NValues = destSheet.Cells(destSheet.Rows.Count, 2).End(xlUp).Row
With destSheet
For i = 6 To NValues
' Cells(i, 3).NumberFormat = "0"
With Cells(i, 3)
.Value = Cells.Value/1000000
.NumberFormat = "0.00"
End With
Next i
End With
End Sub
コードは、シナリオの簡単な警官とペースト一種であるIF文部分の細かい動作しますが、その後いったんWSは新しいWBにコピーされました。私は1Mよりも大きい任意のセルを分けるためにカラム3を必要とします。そして、コードが最初のセルを1M以上の値で見つけたら、エラーメッセージ "ランタイムエラー7"私はいくつかのアプリケーションを終了する必要があり、ちょうどそれがないので実行されますmemの問題のあなたのtipycalのようではないように私はまだ2GBのメモリが残っているので、 私のコードに問題があるのでしょうか?
コードを見ていきますサンプル値のいくつかは以下のとおりです。
16000000
220000
2048000
230000
16000000
230000
16000000
。 Value/1000000'の場合、 'Cells.Value'は' ActiveSheet'全体の全ての値の配列です。最新のExcelでは、これは2^20 * 2^14のセル値です。 –
おそらくあなたはそれが '.Value = .Value/1000000'であることを意味しました –
@chrisneilsenそれはそれが仲間だった!!!! ....それに感謝!私は記憶がなくなっているのを見つけようとしていました!あなたがあなたのコメントをinotに答えたら、私はそれを ";答え"とすぐにマークします! –