web-dev-qa-db-ja.com

CreateObjectは、「システムのシャットダウンはすでにスケジュールされています」というエラーをランダムにスローします

私はグーグルでSOしたが、何もなかった。

私の仕事は、同僚の生活を楽にすることを中心に展開しています。

現在、彼らは10年以上前に設計された非常に不格好なスプレッドシートを使用しています。

PHPを使用してツールとレポートをローカルイントラネットに移行する過程で、Application.Usernameに基づいてそのユーザーのアクセス許可をダウンロードするスプレッドシートを構成しました。

次に、サーバーと少し前後してセッションキーを生成すると、pop Internet Explorerが開き、ワークブック内のドロップダウンから選択した関連ツールが表示されます。つまり、セッションとツールは純粋にブラウザベース。

すべてがうまく機能しますが、ランダムに、時々、インターネットブラウザを開くためのサブがトリガーされると、非常に奇妙なエラーメッセージが表示されます:-

[デバッグ]をクリックすると、次の機能が表示され、どの行が黄色で強調表示されているかを自分で確認できます。

タスクスケジュール内にタスクがまったくないことを確認できます。これを終了して再度実行すると、問題なく実行される可能性があります。このエラーがポップアップするのは時々です。

助けてください!少し早いですがお礼を。

9
user3205578

これは一見無関係で断続的なエラーであるため、私は通常、少しの遅延、エラーのキャッチと再試行、またはその両方を選択します。

次のことを試してください(遅滞なく再試行してください)。

Function gogogo(sessKey)
On Error GoTo ErrHandler
    reportId = Sheet2.Range("A" & (Sheet2.Range("B1").Value + 1)).Value
    Set objIE = CreateObject("InternetExplorer.Application")
    URL = "http://localinternetdomainhere/OnlineTools/" & reportId & "/access/" & sessKey
    With objIE
        .Visible = True
        .navigate URL
    End With
    ThisWorkbook.Saved = True
    ThisWorkbook.Close False
    Exit Function

ErrHandler:

    If Err.Number = &H800704A6 Then 'Put a breakpoint here to make sure this is the ACTUAL VBA error number and not the ActiveX one. You might need to check against the Err.LastDllError property
        Resume
    End If
    Err.Raise Err.Number, Err.Source, Err.Description,err.HelpFile, err.HelpContext 'Reraise the error otherwise

End Function
3
Blackhawk