錄製 Excel VBA 格式化條件的儲存格格式巨集指令後,重新呼叫時無法使用?

2017-08-10 10:29 am
我透過錄製巨集得到的格式變更VBA程式碼如下:

Selection.FormatConditions(1).StopIfTrue = False
Range("B4:B999").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=IF($A4<>"""",TRUE,)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
ExecuteExcel4Macro "(2,1,""""●""@"")"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

但我重新呼叫巨集指令時,此段時程式碼會出現錯誤提醒:
ExecuteExcel4Macro "(2,1,""""●""@"")"

工作表的情況說明如下:
巨集指令存放在「模組」底下,但該格式變更是出現在特定的工作表,例如:SheetABC
網路上查詢過類似問題,似乎 ExecuteExcel4Macro 只能在自己的工作表中執行巨集指令?
那麼我應該如何撰寫「工作表、模組」之間的巨集呢?
因為主要執行巨集指令的是在 Sheet456 的工作表,會透過巨集指令來變更「SheetABC、Sheet456」兩個工作表的格式。

還請 Excel 專家們指導該如何修改,才能讓此段程式碼順利修改?
更新1:

@威遠 換上這個切換了工作表之後, 還是出現一樣的錯誤。

更新2:

@威遠 不好意思, 我大概懂您的意思了, 但因為我透過巨集錄製下來的, 整個在「格式化條件」中, 修改儲存格格式的巨集就是長這樣, 而出錯的那一段, 其實我只是想要把格式變成下面這樣: 原文字: ABCDEF 經過格式化條件判定符合條件的文字,會被格式化為: 格式化文字:● ABCDEF 也就是原本文字前面會多出「●」+「 (空格)」 所以我不太確定這一段巨集指令若要單獨被放到 Sheet456 工作表 和模組之間的關係該怎麼寫才對? 目前這一段, 全都還放在模組中, 我試著把全部放到 Sheet456 工作表直接呼叫, 也是一樣有錯誤。 若是要指定工作表的話, 我不知道該怎麼改寫那一小段, 我自己改完的, 都會出現型態錯誤。

回答 (1)

2017-08-10 1:49 pm
✔ 最佳答案
用這切換當前工作表吧
Worksheets("SheetABC").Activate
Worksheets("Sheet456").Activate

更:
ExecuteExcel4Macro
你是要呼叫自訂的巨集嗎
自訂的要帶上工作表的名稱

https://msdn.microsoft.com/zh-tw/library/office/ff193589.aspx
上面網址中的註解
Microsoft Excel 4.0 巨集沒有從目前活頁簿或工作表的環境中取得數值。也就是說所有的參照都應該是外部參照,而且需要明確指定活頁簿名稱。舉例來說,要在 Book1 中執行 Microsoft Excel 4.0 巨集 "My_Macro",必須使用 [Book1!My_Macro()]。如果不指定活頁簿名稱,此方法將會失敗。


更2:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=IF(A4="""",,TRUE)"

Selection.FormatConditions(1).NumberFormat = """● "" @"

With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.TintAndShade = 0
End With
你把
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
ExecuteExcel4Macro "(2,1,""""●""@"")"
換成
Selection.FormatConditions(1).NumberFormat = """● "" @"
試試看 我這樣子跑是可以的


收錄日期: 2021-05-04 02:29:25
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20170810022904AAhr3jQ

檢視 Wayback Machine 備份