gpt4 book ai didi

Excel - 工作簿很慢并且经常崩溃

转载 作者:行者123 更新时间:2023-12-04 21:25:50 24 4
gpt4 key购买 nike

我们有一个与 5 个用户共享并持续使用的工作簿。我们有大约 1800 条记录和 26 列数据。数据是 VLOOKUPS 标准值的混合。我有 3 个正在运行的宏和 2 个条件格式规则和 5 张带有转储数据的工作表(一张包含 17K 记录和 40 列数据)。

我们尝试删除所有不需要的额外功能,并用标准文本替换它们,但我们没有注意到差异。

工作簿不断崩溃,即使我们不触摸它并在其中单击,它也会卡住并可能需要长达 10 分钟才能再次使用。我还注意到它消耗了相当多的资源(CPU 有时会飙升到 100%),当你保存它时会使用 100% 的 CPU。

有没有人知道如何加快我们的工作簿或至少阻止文件崩溃? :)

在 Sheet1 中调用(语音)

Private Sub Worksheet_Change(ByVal Target As Range)
'43 = ok '41 = NOK

'check if change happened in column A
If Target.Column = 1 Then
'check if changed value is X
If Target.Value Like "*x*" Then
'add datestamp if it is
Cells(Target.Row, 43).Value = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
Else
End If

If Target.Value Like "*NOK*" Then
Cells(Target.Row, 41).Value = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
Else
End If
End If

End Sub

在 ThisWorkbook 中调用
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Set shtVO = Sheets("Voice")
endRowVO = shtVO.Range("J" & Rows.Count).End(xlUp).Row

For Row = 2 To endRowVO
If IsEmpty(shtVO.Cells(Row, 28).Value) = False Then
If shtVO.Cells(Row, 3).Value <> shtVO.Cells(Row, 28).Value Then
If shtVO.Cells(Row, 1).Value Like "*CheckDoneDate*" Then
Else
shtVO.Cells(Row, 1).Value = shtVO.Cells(Row, 1).Value + "CheckDoneDate"
End If
Else
If shtVO.Cells(Row, 3).Value = shtVO.Cells(Row, 28).Value Then
If shtVO.Cells(Row, 1).Value Like "*CheckDoneDate*" Then
shtVO.Cells(Row, 1) = Replace(shtVO.Cells(Row, 1), "CheckDoneDate", "")
End If
End If
End If
Else
If shtVO.Cells(Row, 1).Value Like "*CheckDoneDate*" Then
shtVO.Cells(Row, 1) = Replace(shtVO.Cells(Row, 1), "CheckDoneDate", "")
End If
End If
Next Row

End Sub

作为模块 1 调用
Sub DateNow()

ActiveCell.Value = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")

End Sub

Sub UpdateLinks()
'
' Update Links
'
'ActiveWorkbook.UpdateLink Name:="F:\VOICE.xlsm", Type:=xlExcelLinks
'ActiveWorkbook.CalculateFull

End Sub

当前状态:阅读我的答案。

最佳答案

Excel 公式会在其参数更改时重新计算(或者当任何单元格更改时,如果函数是可变的)。

在您的情况下,一个示例计算工作流程是:

  • 您更改了语音表第 1 列中的一个单元格。
  • 全部 VLOOKUP重新计算引用数据表的 s。
  • Worksheet_Change为更改的单元格触发。从处理程序中,您可以修改同一张表的第 41 或 43 列。
  • 全部 VLOOKUP重新计算引用数据表的 s。
  • Worksheet_Change为第 41/43 列中更改的单元格触发。什么也没做。

  • 对于每一行,保存时也会发生同样的情况。

    你可以:
  • 制作 VLOOKUP如果可能的话,不要看第 41 列。这将消除第二次重新计算。
  • 切换到手动重新计算。
  • 关于Excel - 工作簿很慢并且经常崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670865/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com