返回列表 上一主題 發帖

從a.xls裡面去執行b.xls的commandbutton1;c.xls的commandbutton1.....等

從a.xls裡面去執行b.xls的commandbutton1;c.xls的commandbutton1.....等

如題,
Private Sub CommandButton1_Click()
Call 更新
Workbooks.Open ("C:\Documents and Settings\b.xls")  '呼叫b.xls的模組
Application.Run ("b.xls!Sheet1.CommandButton1_Click")

Workbooks.Open ("C:\Documents and Settings\c.xls")
Application.Run ("c.xls!Sheet1.CommandButton1_Click")

Workbooks.Open ("C:\Documents and Settings\d.xls")
Application.Run ("d.xls!Sheet1.CommandButton1_Click")
end sub
---------------------------------------------------------------------------------------------------以上是我的程式碼
可是我按F8一行一行去執行時不知道為什麼都執行到b.xls後,就跳到了 第1行的程式去了
請問錯在哪兒呢?

如題,
Private Sub CommandButton1_Click()
Call 更新
Workbooks.Open ("C:\Documents and Settings\b. ...
gkld 發表於 2013-4-10 21:52


參考

模組呼叫

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 2# mark15jill

感謝指點~ 即刻去看文!!

TOP

回復 2# mark15jill

樓上的先進:
  1. Workbooks.Open ("C:\Documents and Settings\資料庫\004.xls")
  2. Workbooks("004.xls").Activate
  3. Application.Run ("004.xls!Sheet1.CommandButton1_Click")

  4. Workbooks.Open ("C:\Documents and Settings\資料庫\005.xls")
  5. Workbooks("005.xls").Activate
  6. Application.Run ("005.xls!Sheet1.CommandButton1_Click")
複製代碼
上述程式碼是a.xls裡面的一個模組

你分亨的文章,同樣都是使用到 application.run
所以我這樣的寫法應該也是同樣意思
只是我不了解…為何我執行起來,那個004檔案裡的commandbutton1是可以被呼叫出來的
但是之後程式就結束了,無法執行到005.xls的commandbutton1

TOP

回復  mark15jill

樓上的先進:上述程式碼是a.xls裡面的一個模組

你分亨的文章,同樣都是使用到 app ...
gkld 發表於 2013-4-11 20:41



    老話常談... No Have 檔案   No Have Answer...

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 5# mark15jill

唉呀… 是我失禮了!!

我把檔案放上來,或許比較清楚

主要是我要執行001.xls的「更新資料」按扭,想透過這個動作去呼叫004.xls裡的CommandButton1、005xls的CommandButton1

015.xls裡的CommandButton1…等更多xls裡的CommandButton1,但是都是只跑到004.xls裡的CommandButton1後,就停了

再請各位高手釋疑。

新資料夾.rar (260.4 KB)

TOP

回復 6# gkld
是這樣的
  1. Sub 更新() '001.xls的「更新資料」
  2.     Dim m As Date, n As Date
  3.     Dim XPath As String
  4.     XPath = ThisWorkbook.Path
  5.     '你的所有檔案都在同一資料夾:  C:\Documents and Settings\gkld\My Documents\
  6.     '檔案未開啟:    檔案名稱需是完整檔案名稱 前後 加 ' ->   '檔案名稱'!模組名稱.程序名稱
  7.     Run "'" & ThisWorkbook.Path & "\004.xls'!資料更新.更新"

  8.     '檔案已啟時    只需: 活頁簿名稱!模組名稱.程序名稱
  9.     Run "004.xls!資料更新.更新"
  10.     Run "005.xls!資料更新.更新" '...
  11.     Run "006.xls!資料更新.更新" '...
  12.     Run "007.xls!資料更新.更新" '...
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# GBKEE
哦…原來還可以這樣呀!? 待會再去跑跑看

可是板大…我還是很好奇…原本的寫法 是錯在哪兒?

我執行時,沒有出現錯誤,但卻只是跑到更新完 004.xls的檔案就跳出來了,結束了

不曉得原因出在哪兒說

TOP

回復 7# GBKEE
板大,能否再次請教
  1.    1. Workbooks.Open ("C:\Documents and Settings\資料庫\004.xls")
  2.    2. Workbooks("004.xls").Activate
  3.    3. Application.Run ("004.xls!Sheet1.CommandButton1_Click")
  4.    4.

  5.    5. Workbooks.Open ("C:\Documents and Settings\資料庫\005.xls")
  6.    6. Workbooks("005.xls").Activate
  7.    7. Application.Run ("005.xls!Sheet1.CommandButton1_Click")
複製代碼
上述的程式碼,與你所指導的 「、檔案已啟時    只需: 活頁簿名稱!模組名稱.程序名稱」
是否一致??
小弟不是很了解,為何我所寫的程式碼,這樣只能執行到004.xls!Sheet1.CommandButton1_Click完後,就沒了
後面的005.xls!Sheet1.CommandButton1_Click就沒有執行了
而且還是在沒有出現偵錯的情況下~

TOP

回復 7# GBKEE
板大,我依你的指導修正了001.xls的程式碼後,
也是面臨了同樣的問題說,都是執到了004.xls的Run "'" & XPath & "\004.xls'!資料更新.更新"後,就跳出來了
我附上相關檔案
再請釋疑 更新.rar (324.14 KB)

TOP

        靜思自在 : 甘願做、歡喜受。
返回列表 上一主題