頁: [1] 2
|
 |
|
作者
|
主題: 出現#400的錯誤會是什麼問題呢? (閱讀 2314 次)
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4428
|
剛剛為網友寫了個小程式,我左試右試都沒問題,但傳到網友手上郤出現#400的錯誤,叫他再傳回來看,又沒問題,有人知道可能那裡出錯嗎?下面是程式碼: Sub insert() Dim i%, n% n = 24 For i = n To 3 Columns(i).insert Range("A1:A14").Copy Columns(i) Next End Sub
Sub del() Dim i%, rng As Range Set rng = Range("C1") For i = 3 To 46 Step 2 Set rng = Union(rng, Cells(1, i)) Next rng.EntireColumn.Delete End Sub 以上是工作表有24欄,要在c.e.f....每隔1欄插入1欄並放入a1:a14的標題。下面的程式是刪除這些插入的欄。
|
|
|
|
« 最後編輯時間: 2005-05-14, 19:44:50 由 oobird »
|
已記錄
|
結廬待慧君
|
|
|
leonchou
論壇維護群
離線
文章: 1160
|
Sub insert_column() Dim i%, n% n = 24 For i = n To 3 Step -1 Columns(i).Insert Range("A1:A14").Copy Cells(1, i) Next End Sub
1. For i = num1 To num2, num1大於num2時要 Step 負數, 否則迴圈不會做. 2. Range("A1:A14").Copy Columns(i) --> 複製與貼上的形狀不同, 錯誤. 3. 建議自定義的Sub,變數名稱最好不要用到內建關鍵字.
測試時倒是沒有你說的 400 錯誤 (應用程式或物件定義錯誤). 測試環境參考左側資訊.
PS. 對方和你的版本相同嗎?
|
|
|
|
« 最後編輯時間: 2005-04-27, 21:16:24 由 leonchou »
|
已記錄
|
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4428
|
哦,可能版本不同,我再問問看,謝謝指導。
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4428
|
對方為excel2000, 照leonchou兄修改的就可執行了,只是小弟不懂,儘管有錯誤,小弟的excel2002怎會略過且又正常執行?
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
yem
高中生
離線
文章: 110
|
對方為excel2000, 照leonchou兄修改的就可執行了,只是小弟不懂,儘管有錯誤,小弟的excel2002怎會略過且又正常執行?
10 Sub insert() 20 Dim i%, n% 30 n = 24 40 For i = n To 3 50 Columns(i).insert 60 Range("A1:A14").Copy Columns(i) 70 Next 80 End Sub 上述代碼在 excel2002執行,到 40 For i = n To 3 直接跳到 80 End Sub 故oobird兄執行後應該等於沒有執行 不過把40更改成 For i = n To 3 Step -2 執行依然不會發生錯誤,這可以是版本的差異吧!! 雖然2002可以這麼寫,但還是建議用leonchou兄的寫法比較正確
|
|
|
|
|
已記錄
|
What doesn't kill you will only make you stronger
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4428
|
哇,學問太大了,您是怎麼看知道40跳到80呢?尤其是這個Step該怎麼正確使用?小弟還在摸索中,能撥冗說明一下嗎?For i = n To 3後面的Step-1是小弟刪除空白產生的錯誤符號時誤刪,-2時會隔兩欄插入一欄,您的不會嗎?
|
|
|
|
« 最後編輯時間: 2005-04-28, 17:32:22 由 oobird »
|
已記錄
|
結廬待慧君
|
|
|
leonchou
論壇維護群
離線
文章: 1160
|
哇,學問太大了,您是怎麼看知道40跳到80呢?
如果不熟邏輯/流程, 逐步執行是debug的好方法之一。 基本上有兩個方式: 1. Alt-F8 叫出巨集視窗 > 點選巨集 > 按 [逐步執行] 2. 在VBE 視窗下,游標在某巨集程式碼之中,按 F8 顧名思義它會一行一行執行(按一次 F8 執行一行程式), 不是真的一行一行,它會符合程式的判斷和流程, 所以你看的出它從哪裡跳到哪裡。 按下VBE 視窗中工具列的停止鈕可隨時停止執行。 尤其是這個Step該怎麼正確使用?小弟還在摸索中,能撥冗說明一下嗎?For i = n To 3後面的Step-1是小弟刪除空白產生的錯誤符號時誤刪....... Step 其實很單純,這是指定迴圈counter的執行順序與間隔。 Step 省略不輸入則預設為 Step 1; Step n 是每隔 n 個 counter 執行一次。 For i = num1 To num2, num1 小於 num2 時 n 需為正數 (順向執行); num1 大於 num2 時 n 需為負數 (逆向執行), 否則迴圈不會跑(直接跳出迴圈)。
|
|
|
|
|
已記錄
|
|
|
|
yem
高中生
離線
文章: 110
|
佩服!!  leonchou兄提攜教導後輩的精神令人感佩,難怪桃李滿天下,吾難望其項背,請受我一拜orz ps.寫這種教學文章好辛苦,我也曾寫過一兩篇就累了,且會想何不利用這些時間再學點新的,實在是很自私!! 
|
|
|
|
|
已記錄
|
What doesn't kill you will only make you stronger
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4428
|
太好了,兩位都請受我一拜。
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
oobird
凸槌的木工
論壇維護群
離線
文章: 4428
|
有個小問題存在心中好久了,也一併請教:程式一開始的宣告:"Dim i%, n%"甚至加上" As Integer"到底有沒有必要?小弟的一些小程式加不加都一樣執行,(大程式不會寫)所以也無從認識它的目的。能再費心賜教嗎?
|
|
|
|
|
已記錄
|
結廬待慧君
|
|
|
|
頁: [1] 2
|
|
|
|