3

该程序在我的电脑上需要 1-2 秒

缓慢发生在线 Debug.Print Err.Description
如果我用 Err.number 替换它,它需要 0s。

问题在于,如果我更改代码以显示Type Mismatch错误消息

我正在使用 Excel 2007,64 位 Windows Server。

我已禁用所有加载项

我将以下代码放在一个全新的 .xlsm 文件中。

问题不在于 debug.print ,如果我将其更改为字符串比较,问题仍然存在

Private Declare Function GetTickCount Lib "kernel32" () As Long

Public Sub Testing()
Err.Clear
Application.DisplayAlerts = False
Application.CutCopyMode = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
On Error GoTo Problem

    Dim a As Double
    a = 10 / 0
Problem:
    Dim sOutput As String
    Dim lStart As Long, lEnd As Long


    lStart = GetTickCount
    Debug.Print Err.Description
    lEnd = GetTickCount
    gsOutput = "Time requires : " & (lEnd - lStart) / 1000 & "s"
    Debug.Print gsOutput
End Sub

你能帮忙的话,我会很高兴。

编辑 发现的问题和解决方案:http: //support.microsoft.com/kb/2683270

顺便说一句,如果微软已经说明了这个问题,我确实认为这不是一个本地化的问题。

4

1 回答 1

1

基本上问题是因为本地计算机上缺少某些注册表值。

正如这里建议的那样

Excel 进程在错误处理过程中使用的 winhelp.ini 丢失(您可以使用建议的工具进行检查。)

因此,它从其他一些 %PATH% 变量中查找网络驱动器的 C:\Windows\winhelp.ini。

1-2秒是网络延迟。

通过添加提到的注册表来解决问题。

高温高压

于 2013-03-01T10:02:44.420 回答