Discussion:
發生執行階段錯誤”9”陣列索引超出範圍
(时间太久无法回复)
笨笨魚
2005-09-02 06:55:37 UTC
Permalink
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value

For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
chijanzen
2005-09-02 07:59:02 UTC
Permalink
你好:

你的程式碼看起來沒有問題!

唯一會發生問題的地方是在工作表名稱

所以請你檢查以下的工作表名稱是否其中一個打錯了?

Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
--
天行健君子以自強不息

http://www.vba.com.tw/plog/


"笨笨魚" 來函:
Post by 笨笨魚
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value
For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
笨笨魚
2005-09-02 09:19:03 UTC
Permalink
小弟對照了好幾次確定沒有錯耶
--
請多多指教


"chijanzen" 來函:
Post by chijanzen
你的程式碼看起來沒有問題!
唯一會發生問題的地方是在工作表名稱
所以請你檢查以下的工作表名稱是否其中一個打錯了?
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value
For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
chijanzen
2005-09-02 09:40:03 UTC
Permalink
你好:

請你游標點到 Sub 匯入項次() 這行,然後 按 F8 逐步執行

請你看看錯誤是在哪一句?請你貼出來
--
天行健君子以自強不息

http://www.vba.com.tw/plog/


"笨笨魚" 來函:
Post by 笨笨魚
小弟對照了好幾次確定沒有錯耶
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
你的程式碼看起來沒有問題!
唯一會發生問題的地方是在工作表名稱
所以請你檢查以下的工作表名稱是否其中一個打錯了?
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value
For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
笨笨魚
2005-09-02 12:38:32 UTC
Permalink
卡在這ㄦ
Set b = Sheets("日報表27項(A4)")
可是名稱沒有錯
麻煩您囉
--
請多多指教


"chijanzen" 來函:
Post by chijanzen
請你游標點到 Sub 匯入項次() 這行,然後 按 F8 逐步執行
請你看看錯誤是在哪一句?請你貼出來
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟對照了好幾次確定沒有錯耶
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
你的程式碼看起來沒有問題!
唯一會發生問題的地方是在工作表名稱
所以請你檢查以下的工作表名稱是否其中一個打錯了?
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value
For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
chijanzen
2005-09-03 00:15:01 UTC
Permalink
你好:

找出錯誤的地方後,接下來就是除錯了

請執行以下程式碼

Sub test()
Sheets("日報表27項(A4)").Activate
End Sub

如果還是發生執行階段錯誤”9”陣列索引超出範圍的錯誤
表示真的是工作表名稱錯誤

請你試著將 "日報表27項(A4)" 工作表更名為 "A"
然後再試以下程式碼

Sub test()
Sheets("A").Activate
End Sub

如果沒有發生錯誤,表示真的是工作表名稱有問題
請你重新再輸入一次工作表名稱
--
天行健君子以自強不息

http://www.vba.com.tw/plog/


"笨笨魚" 來函:
Post by 笨笨魚
卡在這ㄦ
Set b = Sheets("日報表27項(A4)")
可是名稱沒有錯
麻煩您囉
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
請你游標點到 Sub 匯入項次() 這行,然後 按 F8 逐步執行
請你看看錯誤是在哪一句?請你貼出來
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟對照了好幾次確定沒有錯耶
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
你的程式碼看起來沒有問題!
唯一會發生問題的地方是在工作表名稱
所以請你檢查以下的工作表名稱是否其中一個打錯了?
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value
For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
笨笨魚
2005-09-03 16:07:02 UTC
Permalink
感恩高手您的指教
你的網站小弟算是常客喔
只是您網站的內容對小弟來說是太深了
該程式碼範例中很多excel vba函數小弟手邊的參考書籍裡都沒有
所以小弟真是有入寶山卻空手而歸的感慨
此次能獲致你的解惑
小弟只能說---------感.............恩...........................
--
請多多指教


"chijanzen" 來函:
Post by chijanzen
找出錯誤的地方後,接下來就是除錯了
請執行以下程式碼
Sub test()
Sheets("日報表27項(A4)").Activate
End Sub
如果還是發生執行階段錯誤”9”陣列索引超出範圍的錯誤
表示真的是工作表名稱錯誤
請你試著將 "日報表27項(A4)" 工作表更名為 "A"
然後再試以下程式碼
Sub test()
Sheets("A").Activate
End Sub
如果沒有發生錯誤,表示真的是工作表名稱有問題
請你重新再輸入一次工作表名稱
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
卡在這ㄦ
Set b = Sheets("日報表27項(A4)")
可是名稱沒有錯
麻煩您囉
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
請你游標點到 Sub 匯入項次() 這行,然後 按 F8 逐步執行
請你看看錯誤是在哪一句?請你貼出來
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟對照了好幾次確定沒有錯耶
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
你的程式碼看起來沒有問題!
唯一會發生問題的地方是在工作表名稱
所以請你檢查以下的工作表名稱是否其中一個打錯了?
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
小弟寫了以下程式碼
為何會發生執行階段錯誤”9”陣列索引超出範圍?
Sub 匯入項次()
Set a = Sheets("日報表150項(A3)")
Set b = Sheets("日報表27項(A4)")
Set c = Sheets("日報表48項(A4)")
Set d = Sheets("日報表75項(A4)")
For i = 1 To 105
a.Cells(i + 12, 2).Value = Cells(i + 2, 2).Value
For j = 1 To 45
a.Cells(j + 12, 18).Value = Cells(j + 107, 3).Value
Next j
For k = 1 To 27
b.Cells(k + 7, 1).Value = Cells(i + 2, 2).Value
Next k
For l = 1 To 48
c.Cells(l + 8, 1).Value = Cells(i + 2, 3).Value
Next l
For m = 1 To 70
d.Cells(l + 7, 1).Value = Cells(i + 2, 3).Value
Next m
For n = 1 To 19
d.Cells(l + 7, 8).Value = Cells(i + 2, 3).Value
Next n
Next i
End Sub
希望各位先進能不吝指教,幫小弟解惑
--
請多多指教
Loading...