看板 Office 關於我們 聯絡資訊
各位板上高手晚上好。 我想要把一個字串陣列傳入sub中,試了很多方法都不成功,錯誤訊息:型態錯誤,必需是 陣列或使用者自定義。我的code 如下。 sub inserthead(head as variant) 略 end sub a=array("日期","品名","數量,"狀態,"備註") inserthead header 有確認過a是有建立起來的。 呼叫時有試過下列方式都失敗 inserthead array("日期","品名","數量,"狀態,"備註") inserthead ("日期","品名","數量,"狀態,"備註") inserthead a 以上,請高手指導一下,感恩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.137.52.102 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1579798136.A.DB0.html
soyoso: 內文所提供的,應是會先產生編譯錯誤,因為array內少了雙 01/24 08:25
soyoso: 引號,應為array("日期","品名","數量","狀態","備註") 01/24 08:26
soyoso: 如果實際也是打上面的話,測試inserthad array(...)或 01/24 08:28
soyoso: inserthead a也是可行的https://i.imgur.com/3dPPmIC.gifv 01/24 08:28
soyoso: 因此請提供更完整的部分來測試才會比較清楚 01/24 08:29
yimean: @s大,不是很懂,我有雙引號阿。不過你說的沒錯是編譯錯誤 01/24 11:21
yimean: https://imgur.com/sbHxSZ0 01/24 11:21
soyoso: 我回文寫了是內文所提供的,沒有雙引號 01/24 11:23
soyoso: 來,請看,內文提供的,我直接複製到程序內,就是出現編輯 01/24 11:24
soyoso: 錯誤 https://i.imgur.com/SjY9GNY.jpg 01/24 11:24
soyoso: 編譯 01/24 11:25
soyoso: 所以我才回內文少了雙引號 01/24 11:26
soyoso: 如以原po回文資料來模擬,且程序insert_header引數個數相 01/24 11:45
soyoso: 符下,是可以的 https://i.imgur.com/B2IndGb.gifv 01/24 11:46
soyoso: 但可以模擬出該錯誤訊息是以head() 01/24 11:48
soyoso: 如 https://i.imgur.com/PYdg5yR.jpg 這就不知原po是否是 01/24 11:48
soyoso: 這樣了。如果也不是,再請提醒01/24 08:29請提供"更完整" 01/24 11:49
soyoso: 的部分來測試,也不要讓回文者再那邊猜 01/24 11:50
yimean: @s大,感謝您耐心回復,奉上連結,麻煩您了。 01/24 13:08
yimean: https://github.com/yimeantw/VBA-Questions/ ※ 編輯: yimean (106.1.36.147 臺灣), 01/24/2020 13:12:52
soyoso: ?看了原po的檔案,不就是我01/24 11:48所提到的 01/24 13:25
soyoso: 因為head()的關係,那要改成什麼,就是內文所寫的head 01/24 13:27
soyoso: 01/24 08:28和01/24 11:46所錄製都是再解釋如何可正確傳入 01/24 13:29
soyoso: 和接收 01/24 13:29
soyoso: 其他寫法測試也有錯誤 01/24 13:46
soyoso: 1.有寫Option Explicit,那就需明確地宣告所有變數,但變 01/24 13:46
soyoso: 數j,head,End_Column都沒有宣告 01/24 13:46
soyoso: 2.設計的按鈕在工作表"控制視窗"而range.select選取不是在 01/24 13:46
soyoso: 該工作表的話,會有錯誤,先worksheet.activate或select, 01/24 13:46
soyoso: 在生管頁面這個工作表後再range.select 01/24 13:46
soyoso: 3.迴圈於變數header集合,也是以header,不需header() 01/24 13:46
soyoso: 4.迴圈內要累加變數j要這樣寫的話,初始值就不要是0,因為 01/24 13:46
soyoso: 第一次cells(1,j),這時j帶入0,這個儲存格是不存在的 01/24 13:46
yimean: @s大,感謝您的耐心指導,是小弟沒弄清楚您的意思,抱歉。 01/24 16:17
soyoso: https://i.imgur.com/1tUnOOK.gifv 那看錄製的部分吧 01/24 16:37
soyoso: 一開始出現,型態不符:必須是陣列或使用者自訂型態,這應 01/24 16:39
soyoso: 該就是原po內文所述的錯誤訊息吧 01/24 16:39
soyoso: 那原因是什麼就是header()不要括號,就可以 01/24 16:41
soyoso: 至於實際巨集接下來是動作的,因只是要解釋內文錯誤產生的 01/24 16:42
soyoso: 原因,我就刪除了;而接下來的動作也會錯誤,而該錯誤產生 01/24 16:43
soyoso: 的原因,我也回在13:46的四點內了 01/24 16:43
yimean: @S大,我已經解決這個問題了喔。感謝您。 01/24 16:44