我们有一个与 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
当前状态:阅读我的答案。