返回列表 上一主題 發帖

[發問] VBA執行時發生執行階段錯誤''91''

[發問] VBA執行時發生執行階段錯誤''91''

[版主管理留言]
  • 小誌(2010-5-26 10:36): 不能傳附件?你不是都已經上傳附件檔案了

本帖最後由 Hsieh 於 2010-5-26 16:36 編輯

小弟遇到一個問題

就是小弟如果先按如下圖的順序,來執行巨集∼∼
就會出現userform2的表單


但如果先按如下圖的順序時



就會出現如下圖


當按下確定時,就會出現如下圖 (執行階段錯誤91,沒有設定物件變數或with區塊變數)?


小弟在網路上找了關於這個訊息的解釋,但這個訊息似乎有好幾種說法

有說是變數沒設為區域,也有說是沒設為全域變數∼∼

請問這是怎麼回事呢?
2.rar (19.07 KB)
感謝各位,祝安康∼∼


PS:為什麼論壇無法傳附件上去?
錢是很寂莫的,所以會想辦法聚在一起!

[版主管理留言]
  • 小誌(2010-5-26 22:47): 請詳閱論壇版規之檔案上下傳原則,檔案附件請儘量刪除不必要資料後壓縮後上傳(非請人家改檔名)。

本帖最後由 syuan 於 2010-5-26 11:44 編輯

Test.rar (67.5 KB) 感謝Hsieh版大的解惑,感謝小誌管大的回覆(應該是小弟目前的權限不足,所以看不到自己上傳的附件)

小弟將表單一的ElseIF下的set該句,放到如版大所述的位置,果然就不再出現那個訊息(執行階段錯誤91,沒有設定物件變數或with區塊變數)

但當點選userform1裡Listbox1的01.日本時,userform1的Listbox2與Listbox3都可顯示,而userform2的Listbox1裡的項目卻無法點選(如下圖)
(小弟的這個程式是用Excel的VBA來開啟pdf檔)



感謝先進們,祝安康∼∼

ps:附件的檔案副檔名,請改為xls!
錢是很寂莫的,所以會想辦法聚在一起!

TOP

造成大家困擾,真是十分抱歉!

起因是小弟直接將xls檔的副檔名,改成rar的壓縮檔!

在第一帖忘了註明,結果讓PD961A大誤解,真是不好意思!

下次小弟會將該檔壓縮後再上傳∼∼
錢是很寂莫的,所以會想辦法聚在一起!

TOP

本帖最後由 syuan 於 2010-7-3 14:33 編輯

不好意思,小弟又來問問題了∼∼

小弟想製作一個輸入號碼後,再按下按鈕時,會出現該號碼的PDF檔

如圖下


說明:當上方的LISTBOX點選後(即EXCEL下方的SHEET名稱),使用者再輸入想查詢的號碼,VBA就會依輸入的碼碼,來搜尋硬碟路徑下的PDF檔

小弟實在不知道該如何寫,已經在網路上找很久,但都沒找到類似的語法∼∼

只好上來請益各位,還望各位先進不吝教導,祝有個愉快假期!

這是EXCEL的VBA檔案 Test.rar (23.88 KB)
錢是很寂莫的,所以會想辦法聚在一起!

TOP

『K = TextBox1.Text
FS = "H:\" & ListBox1.List(ListBox1.ListIndex) & "\" 』
這段改成 ...
kimbal 發表於 2010-7-13 22:08



感謝kimbal大的教學!

小弟這幾天一直在忙別的案子,所以就沒時間上來留言!

小弟將這段程式套到程式裡,發現有點怪怪的!

在輸入號碼的時候,並沒辦法忽略主檔名前的xxx來打開pdf檔(例如主檔名為ABC 1111-1990.pdf)

仍需完全輸入主檔名的全名才打的開!

現在正傷腦筋這段語法,不知該怎麼修改∼∼∼

偏偏現在手頭上又有別的案子在走,實在讓我沒辦法專心的想語法∼∼(今天開會後又有東西要弄了.....)
錢是很寂莫的,所以會想辦法聚在一起!

TOP

本帖最後由 syuan 於 2010-8-11 23:24 編輯
現在用的是不是還是這句?
StrFile = Dir(FS & K & "-*.pdf")
是的話可以改成這句試試
StrFile = Dir(FS & "*" & K & "-*.pdf")
kimbal 發表於 2010-7-21 23:41


感謝kimbal大的教學!

小弟因近幾個禮拜皆在忙公司的專案,雖都有忙裡偷閒來論壇上點選”每日報到”任務來賺積分!

但並沒有來回覆這篇,真是甚感抱歉!(因小弟亦在進行該程式的另一項功能的檔案連結)

小弟將您所示的那句語法鍵入程式中!已能開啟想要的pdf檔並執行無誤!


比較好奇的是那句語法StrFile = Dir(FS & "*" & K & "-*.pdf")是不是解釋成

strfile=目錄(”路徑”&”忽略前段字”&”文字盒裡的字串”&”忽略-後的字串.pdf”)

FS="X:\"
K=Textbox1.text


不知小弟這樣解釋是否可行?

以上,祝安康!
錢是很寂莫的,所以會想辦法聚在一起!

TOP

本帖最後由 syuan 於 2010-11-10 19:42 編輯

Test.rar (14.86 KB)
感謝Hsieh、kimbal與Min的回覆

這幾個月小弟一直在忙別的案子,所以就沒辦法上線來回覆!

雖然途中有跑到別帖去延續問題,但小弟想...還是用這帖回帖好了
http://forum.twbts.com/viewthread.php?tid=1199&page=2


小弟又遇到一個問題,如下圖
藍色框為資料,右側userform2表單的上的文字來源,即是從左側藍色框而來(滑鼠依序點選1、2、3後會出現userform2)


只是小弟有天突然想到,如果在第七列插入一列或插入資料後,那userform2上的文字來源是不是會跑掉?

一試∼∼果不其然,如下圖


因為小弟是用
Set TA = Sheets("甲").Range("a2:b6")
Set JP = Sheets("甲").Range("a7:b11")

的語法來寫,也就是指定行與列的儲存格來連結資料!

那日後如果要如第二張圖插入資料時,那麼”每一行”裡的range豈不是要連動更新...

想請問先進們,vba是否有函數或指令可以來克服這個問題呢?

以上,感謝各位∼∼祝安康!
錢是很寂莫的,所以會想辦法聚在一起!

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題