返回列表 上一主題 發帖

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

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

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

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

小弟遇到一個問題

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


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



就會出現如下圖


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


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

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

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


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

本帖最後由 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

忽略前段字....忽略-後的字串

"忽略"改用"包含" 解釋會較恰當!
或是解釋為Like也行~
若是我回答,使您滿意,請您讓我知道!                  
若是我的回覆,您仍有其他見解,也請您不嗇指教!

TOP

回復 13# syuan


    對啊
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

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

感謝kimbal大的教學!

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

小弟將這段程式套 ...
syuan 發表於 2010-7-21 22:53



現在用的是不是還是這句?
StrFile = Dir(FS & K & "-*.pdf")
是的話可以改成這句試試
StrFile = Dir(FS & "*" & K & "-*.pdf")
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

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



感謝kimbal大的教學!

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

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

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

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

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

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

TOP

本帖最後由 kimbal 於 2010-7-13 22:12 編輯
不好意思,小弟又來問問題了∼∼

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

如圖 ...
syuan 發表於 2010-7-3 12:23



   
下面引用由syuan在 2010/07/14 00:27am 發表的內容:
感謝kimbal大的教導(這幾天在弄別的東西,所以沒立即回覆)
小弟將這段語法套在程式,的確能將pdf打開
但小弟又發現兩個問題點︰
1.如果pdf的主檔名裡,有『1234-2010.pdf』、『4321.pdf』與『1234-1-2010.pdf?...


『K = TextBox1.Text
FS = "H:\" & ListBox1.List(ListBox1.ListIndex) & "\" 』
這段改成如下

『Select Case ListBox1.ListIndex
Case 0
K = TextBox1.Text
FS = "F:\xxxx\測試用\甲\"
Case 1
K = TextBox1.Text
FS = "F:\xxxx\測試用\乙\"
Case 2
K = TextBox1.Text
FS = "F:\xxxx\測試用\丙\"
End Select』

1. 如果有多於1個檔
StrFile = Dir(FS & K & "-*.pdf")
    If StrFile = "" Then
        MsgBox "找不到檔案"
    End If
    Do While StrFile <> ""
        If StrFile <> "" Then
            ActiveWorkbook.FollowHyperlink  FS & K & StrFile
        End If
        StrFile = Dir
    Loop

2. 試試,
FS & "*" & K & "-*.pdf"

就是找  "F:\xxxx\測試用\x\" + 任何字 + textbox上的字 + - +  任何字 + '.pdf' 的意思
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

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

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

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

如圖下


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

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

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

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

TOP

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

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

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

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

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題