- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
本帖最後由 luhpro 於 2011-10-20 22:08 編輯
不好意思,我不了解你說的"把程式放在一般模組,不是工作表模組"是什麼意思?
不過我照你寫給我的巨集去執行 ...
PJChen 發表於 2011-10-16 22:31 
當你點擊任一現存工作表接著點選 "檢視程式碼" 後所看到的程式就是位於 "工作表模組" 內,
一般來說全新的 Excel 檔案內並不會自動產生 "一般模組",
當我們點擊了 "插入" 再點 "模組" 之後出現的 Module1 就是 "一般模組",
若再繼續新增 Module2 ... 等這些都是 "一般模組".
回復 1# PJChen
你的需求基本上還是可以做到的,
關鍵在於呼叫一般模組程序時要把標的Sheet傳遞給該模組程序以便其使用.
因為你的例子中都是針對 Range("O20") 做處理,
故而我們可以僅傳遞 Range("O20") 過去使用.
(一般模組)- Sub SetData(rTarget As Range)
- With rTarget
- .FormulaR1C1 = "=ROUND(RC10*RC12,2)"
- .Select
- ActiveWorkbook.Save
- End With
- End Sub
複製代碼 (各工作表模組) (假設要在 SelectionChange 內呼叫共用程序)- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- Call SetData(Range("O20"))
- End Sub
複製代碼
不同的Sheet執行重覆的巨集-ans.zip (7.08 KB)
(後記 : 程式上傳後才發現打字時誤Key SetData 為 SetDate 請自行修改程序名稱) |
|