[問題] 發生執行階段錯誤9

作者: a6943kght (TOM PAN)   2017-12-17 19:31:31
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:excel2013
我是參照以下影片做修正
https://m.youtube.com/watch?v=vHv4Qq1mv50&feature=share
但我的卻一直顯示發生執行階段錯誤9
陣列索引超出範圍
提供檔案照片:
https://i.imgur.com/SqOUiDY.jpg
抱歉因為是用手機發文所以有點模糊。
Source是我設定的工作表名稱~
感謝各位
Ps我是用錄製巨集完成,只是針對部分內容(選取目標)作修正
作者: soyoso (我是耀宗)   2017-12-17 20:44:00
有可能,並無activecell.value的windwos視窗名稱或索引編號正被開啟,如https://i.imgur.com/LZZj50v.png抱歉應以https://i.imgur.com/z7mdRNP.png 當activecell值為活頁簿2,而只有視窗名稱活頁簿1被開啟時則會出現如原文的錯誤
作者: a6943kght (TOM PAN)   2017-12-17 20:48:00
聽不太懂QQ所以該怎麼解決呢? 教學影片沒問題自己動手做就出現問題 蠻怪的...
作者: soyoso (我是耀宗)   2017-12-17 20:49:00
要看activecell.value帶入的值是否有在正開啟
作者: a6943kght (TOM PAN)   2017-12-17 21:45:00
我又測試了一下,感覺系統抓不到Activesheet.name這個工作簿,然後就拼命複製原來工作簿的source我這個vba是為了要把多個的工作簿檔案彙整到一個裡面
作者: newacc (XD)   2017-12-17 22:17:00
用ActiveCell或ActiveSheet的問題就是你要確定你每次執行巨集時,都選取了正確的頁面和正確的格子標黃色的那行,電腦會先讀取ActiveCell的值,也就是你目前選取的格子裡的內容,然後在Windows找這個名稱的視窗看起來問題出在1.你沒有選對格子 或2.你沒有先開啟對應名稱的視窗順道一提,網路上絕大多數VBA coder都建議能不用Active或Select就不要用,一來很吃資源速度慢,二來只要使用者沒有選對格子或分頁,code就會出問題。
作者: a6943kght (TOM PAN)   2017-12-17 22:26:00
按照影片解說,我的動作大抵是先為選定的儲存格建立超連結(也就是另一個檔案)然後把超連結的工作表移動複製到原來儲存格的工作表,然後再關閉超連結檔案(原因是如果不關閉,那接下來會開一堆視窗耗用記憶體),我全都是按照影片教學,就不懂為什麼還有問題...,巨集也Activecell.value或是Activesheet.name只是為了對應接下來選擇的儲存格使用巨集,還是有其他方式好用呢?感謝樓上的分析及分享
作者: newacc (XD)   2017-12-18 00:21:00
作者: a6943kght (TOM PAN)   2017-12-18 01:46:00
我後來發現我上述的問題存在於當我超連結到外面的檔案時,因為開啟過久或是開啟了不了,造成activesheet.name就直接存取原來的工作簿,所以原來工作簿中的sheet”source”就一直不斷複製...感謝分享

Links booklink

Contact Us: admin [ a t ] ucptt.com