標題:
[發問]
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/)