Excel 工作簿已损坏并已修复 sheet 代码错误时提示内存不足
Excel Workbook Corrupted and Repaired now sheet says out of Memory when codes error
所以我将我的 .xlsm 工作簿剪切并粘贴(第一个错误)到之前的副本上,它就消失了,刷新文件夹后它又出现了但已损坏,Excel 修复了文件说它修复了 "Repaired Records: Drawing from /xl/drawings/drawing7.xml part (Drawing shape)" 问题的原因。伟大的!所以我回去工作,当我执行这段代码时,它一直出错,之后我得到 "Out of Memory" 错误,我无法保存工作簿。
我 运行 在 64 位 excel 上有 8Gb 的 RAM,所以它可能不是实际内存。我尝试删除代码并在另一个 sheet 上使用其他代码,但仍然如此。此外,当我在删除代码后保存工作簿时。打开时再次损坏
Private Sub BtnNoticeRemove_Click()
Dim Lastrow, a As Long
If Sheets("Admin").cbxNotice.Text = "" Then
MsgBox "No data Selected"
End
End If
a = 2
Lastrow = Sheets("BP").Cells(Rows.Count, 19).End(xlUp).Row
Do Until a = Lastrow + 1
If Sheets("Admin").cbxNotice.Text = Sheets("BP").Cells(a, 19).Value Then
Sheets("BP").Cells(a, 19).Delete Shift:=xlUp
Lastrow = Sheets("BP").Cells(Rows.Count, 19).End(xlUp).Row
Sheets("BP").Range("S2:S" & Lastrow).Sort Key1:=Range("S2"),
Order1:=xlAscending
End If
a = a + 1
Loop
End Sub
编辑:
谢谢反馈的人,好的,所以我设法重新创建了我所有的数据和宏代码。不再有损坏错误,但我仍然在上面的代码中遇到内存不足错误,排序完成后,在
Sheets("Admin").cbxNotice.Text
报错
我成功了,问题是 cbxNotice 是 sheet 中的一个列表框,它引用了我的后台 Sheet,问题出在它从后台 [=15] 删除的循环中=] 从中引用的列表框导致我的循环继续,它完全忽略了 Until 和变量 a 直到程序错误 ed "out of memory".
所以我做了什么让它工作,清除列表框中的引用并使用宏代码将这些值添加到列表框中
所以我将我的 .xlsm 工作簿剪切并粘贴(第一个错误)到之前的副本上,它就消失了,刷新文件夹后它又出现了但已损坏,Excel 修复了文件说它修复了 "Repaired Records: Drawing from /xl/drawings/drawing7.xml part (Drawing shape)" 问题的原因。伟大的!所以我回去工作,当我执行这段代码时,它一直出错,之后我得到 "Out of Memory" 错误,我无法保存工作簿。
我 运行 在 64 位 excel 上有 8Gb 的 RAM,所以它可能不是实际内存。我尝试删除代码并在另一个 sheet 上使用其他代码,但仍然如此。此外,当我在删除代码后保存工作簿时。打开时再次损坏
Private Sub BtnNoticeRemove_Click()
Dim Lastrow, a As Long
If Sheets("Admin").cbxNotice.Text = "" Then
MsgBox "No data Selected"
End
End If
a = 2
Lastrow = Sheets("BP").Cells(Rows.Count, 19).End(xlUp).Row
Do Until a = Lastrow + 1
If Sheets("Admin").cbxNotice.Text = Sheets("BP").Cells(a, 19).Value Then
Sheets("BP").Cells(a, 19).Delete Shift:=xlUp
Lastrow = Sheets("BP").Cells(Rows.Count, 19).End(xlUp).Row
Sheets("BP").Range("S2:S" & Lastrow).Sort Key1:=Range("S2"),
Order1:=xlAscending
End If
a = a + 1
Loop
End Sub
编辑:
谢谢反馈的人,好的,所以我设法重新创建了我所有的数据和宏代码。不再有损坏错误,但我仍然在上面的代码中遇到内存不足错误,排序完成后,在
Sheets("Admin").cbxNotice.Text
报错
我成功了,问题是 cbxNotice 是 sheet 中的一个列表框,它引用了我的后台 Sheet,问题出在它从后台 [=15] 删除的循环中=] 从中引用的列表框导致我的循环继续,它完全忽略了 Until 和变量 a 直到程序错误 ed "out of memory".
所以我做了什么让它工作,清除列表框中的引用并使用宏代码将这些值添加到列表框中