Board logo

標題: [發問] Excell 2003 MsgBox莫明奇妙的 bug~~~ [打印本頁]

作者: eigen    時間: 2017-6-17 22:22     標題: Excell 2003 MsgBox莫明奇妙的 bug~~~

Excell 2003 MsgBox莫明奇妙的 bug~~~

[attach]27349[/attach]

原本的程式很大一個,開啟時很耗時間,所以我加一個 timer 來顯示啟動的時間,以利修改程式,

但是有bug,我一直測試、一直刪除,刪到最後剩下這三個程式區塊

公式一、
用在 設定格式化條件,主要目的是,儲存格 C:L 都是利用公式產生的,

當儲存格內容被修改成直接寫入時(也就是公式被改掉)會用紅色顯示,方便辦視

這樣才知道這格的資料是寫死的,非公式產生

Option Explicit

'自動化格式明顯標示
Function IsFormula(rng As Range) As Boolean
Dim cell As Range
    IsFormula = 1
    For Each cell In rng
        If cell.HasFormula = False Then
            IsFormula = 0
        End If
    Next
End Function

在檔案開啟時,會執行兩個動作,

公式二、
#1 一個是選擇 a5這一個儲存格(這是因為存檔時,位置儲存格的位址會在其它地方,要方便每次開啟的操作,所以設定到 a5

公式三、
#2 是 將 尋找的選項,公式改成內容。預設是公式,這會讓尋找變的很麻煩(內容通通是公式產生),

每次都要手動改,所以加了這一段,讓尋找的選項,變成內容。


Dim Time0

Private Sub Workbook_Open()

Time0 = Timer



'--#1-----------------------------------------------------------


        Sheets("Sheet1").Activate
        Sheets("Sheet1").Range("A5").Select


'--#2-----------------------------------------------------------
'Configure Excel to look by default in Formulas, Values and Comments
'http://superuser.com/questions/114831/configure-excel-to-look-by-default-in-formulas-values-and-comments
        '修正尋找設定為內容而非公式
        'Application.ScreenUpdating = False
                Worksheets(1).Cells.Find _
                What:="", _
                After:=ActiveCell, _
                LookIn:=xlValues, _
                LookAt:=xlPart, _
                SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, _
                MatchCase:=False, _
                MatchByte:=False, _
                SearchFormat:=False
        'Application.ScreenUpdating = True

'-------------------------------------------------------------
'Dim Time0
'Time0 = Timer
MsgBox "執行時間#2 " & Timer - Time0 & " 秒", vbOKOnly

'-------------------------------------------------------------

End Sub



問題點在於,最後一行的 MsgBox "執行時間#2 " & Timer - Time0 & " 秒", vbOKOnly  不會執行

因為自動化格式 、 尋找 、 點選 a5  這三個動作,結果導致 MsgBox 不會顯示。

將 MsgBox 移到 #2之上,就會顯示,在#2之後就不會顯示,將 #1 改 成沒有自動作格式的 欄 ex: n1 就會顯示

將a5 的公式刪除也會顯示,將 自動化格式移除,也會顯示

反正就是這三個剛好組合在一起,MsgBox 就不會顯示

搞的我好煩呀~~

請問問題源頭是什麼?




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)