[問題]如何是用另用一個excel file的巨集,而不需要開啟此excel file
- 帖子
- 32
- 主題
- 7
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2011
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-13
- 最後登錄
- 2014-7-8
|
[問題]如何是用另用一個excel file的巨集,而不需要開啟此excel file
本帖最後由 jarodz 於 2012-1-4 00:17 編輯
因為小弟寫了一些 VBA 的巨集分享給同事使用,
一開始是放在一個excel,要用的人去copy這個excel file來用,
但是隨著使用人數及次數變多,加上中途有改版,現在變成好幾個檔案好幾個版本,
害我自己都忘了哪個是最新版,下次要從哪個改起。
後來發現可以作個按鈕去call同一個excel裡的巨集,
但是遇到一個問題,是每次執行都會把這個共用的excel開起來,
有沒有辦法可以不讓他開起來或隱藏起來且不會把檔案鎖成唯讀。
謝謝回答。
一個對excel操作不熟的程式人留。 |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
2#
發表於 2011-12-22 16:25
| 只看該作者
本帖最後由 GBKEE 於 2011-12-22 16:36 編輯
回復 1# jarodz
加入一般模組 名稱為"Module1" 檔案開啟後自動執行Auto_Open程序 另存檔案名稱, 原檔案就不會開啟.- Option Explicit
- Private Sub Auto_Open()
- ThisWorkbook.SaveAs CurDir & "\" & Split(ThisWorkbook.Name, ".")(0) & "備份" '另存檔案名稱
- With ThisWorkbook.VBProject
- .VBComponents.Remove .VBComponents("Module1") ' 刪除 Module1 模組
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 32
- 主題
- 7
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2011
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-13
- 最後登錄
- 2014-7-8
|
3#
發表於 2012-1-3 23:16
| 只看該作者
回復 2# GBKEE
Dear GBKEE,
謝謝你的回答,
不好意思,可能是我原先的意思描述的不清楚,
我想作的是類似增益集,(我已經知道如何把一般xls弄成增益集)
但不知如何在新建的excel中 call 這個增益集裡的Sub routine?
最終我是弄成,點擊此excel增益集會自動在工具列增加按鈕,
按此按鈕就會執行excel增益集中的sub routine.
謝謝。
BR,
Jarod |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2012-1-4 07:21
| 只看該作者
回復 3# jarodz
我想作的是類似增益集,(我已經知道如何把一般xls弄成增益集) 但不知如何在新建的excel中 call 這個增益集裡的Sub routine
Run "這個增益集!routine" |
|
|
|
|
|
|
- 帖子
- 32
- 主題
- 7
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2011
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-13
- 最後登錄
- 2014-7-8
|
5#
發表於 2012-1-4 10:48
| 只看該作者
回復 4# GBKEE
現在有個問題,
在預備把作成增益集前的xls作一個工具列的button,assign 這個xls裡的macro 給它,
然後再把 IsAddin 屬性設為 true ,後儲存。
在另外一台開啟此 xls,此增加的button無法出現,
好像是無法看到增益集裡的sub routine.
這何解?
同樣的問題,xls設為增益集後在macro list就看不到其 Macro,
看不到還是可以執行嗎?
BR,
Jarod
BR,
Jarod |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
6#
發表於 2012-1-4 11:59
| 只看該作者
回復 5# jarodz
複製到一般模組中- Private Sub Auto_Open()
- Dim newcontrl As CommandBarControl
- Application.CommandBars.ActiveMenuBar.Reset
- Set newcontrl = Application.CommandBars.ActiveMenuBar.Controls.Add(10)
- With newcontrl
- .Caption = "控制鈕"
- End With
- Set A = newcontrl.Controls.Add(1)
- A.Caption = "本機使用者"
- A.OnAction = "EX"
- Set A = newcontrl.Controls.Add(1)
- A.Caption = "本機資訊"
- A.OnAction = "EX1"
- End Sub
- Private Sub Auto_Close()
- Application.CommandBars.ActiveMenuBar.Reset
- End Sub
- Private Sub Ex()
- MsgBox "使用者 : " & Application.UserName
- End Sub
- Private Sub Ex1()
- MsgBox "Welcome to Microsoft Excel version " & _
- Application.Version & " running on " & _
- Application.OperatingSystem & "!"
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 32
- 主題
- 7
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2011
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-13
- 最後登錄
- 2014-7-8
|
7#
發表於 2012-1-5 11:33
| 只看該作者
Dear GBKEE,
謝謝,想再請教一下用 Auto_Open 跟寫在 ThisWorkbook 用 Workbook_Open() 有什麼差別,
再者除了 Auto_Open, Auto_Close 之外,在一般還有什麼特殊的 event 可以 trap 到,
這要用什麼關鍵字查 help 或去哪裡可以看到這些 event list,謝謝。
BR,
Jarod |
|
|
|
|
|
|
- 帖子
- 32
- 主題
- 7
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2011
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-13
- 最後登錄
- 2014-7-8
|
9#
發表於 2012-1-5 11:57
| 只看該作者
Dear GBKEE
WorkBook_Open() 可以很直覺的發現了,
但是 Auto_Open()這個是去哪裡查到的?
我想問的是一般module可以用的event要去哪查?
Auto_Open() 在IDE的視窗中不像WorkBook_Open()會自動列出來。
BR,
Jarod |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
10#
發表於 2012-1-5 12:28
| 只看該作者
回復 9# jarodz
一般module可以用的event
就AUTP_OPEN , AUTO_CLOSE 這2個,如果還有請知道的分享, |
|
|
|
|
|
|