2015-11-08 14 views
5

travels.xlsmという名前のブックがあります。条件付き書式のシートにExcel 2010ファイルを開いたときにWorkbook_open()が実行されない

Private Sub Workbook_Open() 
    MsgBox "hello" 
    Application.Calculation = xlManual 

    ActiveWorkbook.RefreshAll 'refresh the querytables without recalculating 

    Application.Calculation = xlAutomatic 
End Sub 

のUDFモジュールでこのコード:

私はこのコードを持っているにはThisWorkbook

Function hasHyperlink(rng As Range) As Boolean 
    hasHyperlink = rng.Hyperlinks.Count 
End Function 

アクティブシートである条件付き書式が含まれている場合、私は、ファイルを開くと私のユーザー定義関数を使用して - Workbook_open()サブは実行されません。

アクティブシートが条件付き書式でこの関数を使用しないときにブックを閉じると、再度保存して開く - 期待どおりに実行されます。 これは少し奇妙です。

私は解決策のためのアイデアを...

誰もが特定のシートにブックを閉じるかWorkbook_BeforeClose()サブブックを閉じる前に、その「安全」のシートをアクティブにするために呼び出すためにしたくないですか?それはExcelのバグですか?同様の議論を参照してください

答えて

0

Excel Workbook Open Event macro doesn't always run

私は最良の答えは、その下の1は、答えの1のコメントで表示されていると思う:

私は答えを考えると解決策を考え出しました同様のリンクに。ブック内の プライベートブール変数を使用して、 workbook_openイベントが発生したかどうかを判断します。そうでない場合は、ハンドラを workbook_activateに追加し、workbook_sheet_changeに追加し、変数が設定されていない場合は workbook_openイベントを再実行します。 - DrMarbuse

可能であれば、コードをWorkbook_Activateイベントに移動するだけでも簡単です。私はWorkbook_Openが発砲しないように問題を抱えていた過去にこれをやったことがあります(なぜそうではないのか分かりませんでした)。

関連する問題