返回列表 上一主題 發帖

[發問] 不同的Sheet執行重覆的巨集

本帖最後由 luhpro 於 2011-10-20 22:08 編輯
不好意思,我不了解你說的"把程式放在一般模組,不是工作表模組"是什麼意思?
不過我照你寫給我的巨集去執行 ...
PJChen 發表於 2011-10-16 22:31

當你點擊任一現存工作表接著點選 "檢視程式碼" 後所看到的程式就是位於 "工作表模組" 內,
一般來說全新的 Excel 檔案內並不會自動產生 "一般模組",
當我們點擊了 "插入" 再點 "模組" 之後出現的 Module1 就是 "一般模組",
若再繼續新增 Module2 ... 等這些都是 "一般模組".

回復 1# PJChen
你的需求基本上還是可以做到的,
關鍵在於呼叫一般模組程序時要把標的Sheet傳遞給該模組程序以便其使用.
因為你的例子中都是針對 Range("O20") 做處理,
故而我們可以僅傳遞 Range("O20")  過去使用.
(一般模組)
  1. Sub SetData(rTarget As Range)
  2.   With rTarget
  3.     .FormulaR1C1 = "=ROUND(RC10*RC12,2)"
  4.     .Select
  5.     ActiveWorkbook.Save
  6.   End With
  7. End Sub
複製代碼
(各工作表模組) (假設要在 SelectionChange 內呼叫共用程序)
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.   Call SetData(Range("O20"))
  3. End Sub
複製代碼
不同的Sheet執行重覆的巨集-ans.zip (7.08 KB)
(後記 : 程式上傳後才發現打字時誤Key SetData 為 SetDate 請自行修改程序名稱)

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題