у меня есть этот код:Excel 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
код работает отлично для Statement части IF, которая является простой полицейский и вставить такой сценарий, но то, как только WS был скопирован в новый WB, мне нужен столбец 3, чтобы разделить любую ячейку, которая больше 1M на 1M, и как только код найдет первую ячейку со значением более 1M, я получаю сообщение об ошибке «Runtime Error 7, система из памяти ", но у меня все еще есть 2 ГБ слева от памяти, поэтому это не похоже на то, что вы не можете решить проблему, когда мне нужно закрыть несколько приложений, и она будет работать, потому что она просто не работает. Мне интересно, есть ли проблема с моим кодом?
некоторые из значений выборок, что код будет выглядеть являются:
16000000
220000
2048000
230000
16000000
230000
16000000
В '.Value = Cells. Значение/1000000' 'Cells.Value' - это массив всех значений во всем' ActiveSheet'. С обновленным Excel это значения 2^20 * 2^14. –
Возможно, вы имели в виду, что это было '.Value = .Value/1000000' –
@chrisneilsen, это был его помощник !!!! .... спасибо за это! я пытался выяснить, у кого у меня заканчивается память! если вы поместите свой комментарий в ответ, я сразу же помету его как «ответ»! –