VBA EXCEL 工作表變化 馬上執行 的作法 Worksheet_Change
沒想到還會用到 Excel 中的 VBA,當初寫VBA就是一段窮極無聊的日子,用Excel寫星象表… 現在居然要幫一位老大哥寫這樣的程式…當真所有的事,當下是很難知道它發生的意義是什麼… 癈話不多說 先開啟EXCEL,存成副檔名為xlsm,這樣可以使用巨集功能。 然後看一上面,標籤列,有無開發人員選項。 如果沒有,從 檔案->選項->自定功能區->開發人員(打勾) 如果有,點擊 visual basic,就可以開始寫VBA 我們的目的是這樣的,如果 worksheet中有任何的更動,都會執行一段程式。 所以我們先點擊左邊的工作表1,然後右邊的程式編輯欄中上面的選擇列中,選worksheet。要記得這個設定是 對應到個別的worksheet ,所以如果有其它工作表,要個別寫對應的程式。如下 接下來選右邊的change 選完就會自動產生兩個程式名。 Worksheet_Change與 Worksheet_SelectionChange,如下。Worksheet_Change是指任何在worksheet 上的變動,就會執行這個程式。Worksheet_SelectionChange是指,選定EXCEL中的格有變化,如本來選A1改點擊了B1,這個動作就會觸發Worksheet_SelectionChange。 我們在兩個程式中寫一個MsgBox, 如下 各位可以試試效果如何。只要點擊左上方,excel的小圖,就會回到excel的worksheet中。 我們在 Worksheet_Change中增加三行程式,會在A1, A2, A3格中填入a, b, c。 各位是否有推論,這樣的寫法,會產生無窮迴圈? 這個很重要!在寫 Worksheet_Change程式時,要很小心,如果是 工作表1自己的 Worksheet_Change要對工作表1自己做改變,就會進入無窮迴圈。 所以我們要能自由的開關觸發功能。用 Application.EnableEvents 我們加入 Application.EnableEvents ,再試試看。 如此這般。