1樓:韋楊氏賀冬
錯誤不在這一段程式裡,在你的使用者管理窗體裡,應該是初始化的時候陣列下標越界了
2樓:憑博明
回答親,很高興為您服務
用redim界定一下維數和尺寸即可解決此問題。
執行時錯誤9下標越界是因為定義的動態陣列沒有確定維數和尺寸。定義成固定維數和尺寸的,或用redim界定一下維數和尺寸即可解決此問題。
excel提示下標越界是vba程式執行的一個錯誤提示,原因有以下幾個:
1、引用了不存在的陣列元素:下標比可能下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。
2、宣告陣列時沒有指定元素的數目:引用了不存在的集合成員。
3、使用速寫形式的下標,結果指定了錯誤的元素。
4、引用或操作的工作薄、工作表不存在。
希望對您有幫助
更多7條
vba執行時錯誤9,下標越界
3樓:很多很多
excel中vba提示下標超界,說明物件不存在或者陣列元素不存在。
舉個簡單的例子:工作表中沒有"1月"這個工作表,卻用sheets("1月");陣列定義的是arr(1 to 10),卻用arr(11),都會出現下標越界的提示。
簡單的理解:下標越界就是引用超出了所在的範圍。
1、當我們在excel的vba中輸入下面**,執行,就會出現「執行時錯誤9下標越界」的提示。**如下:
sub a()
dim arr() as string
arr(1) = "你好"
end sub
2、其實上面的「執行時錯誤9下標越界」是因為定義的動態陣列沒有確定維數和尺寸。定義成固定維數和尺寸的,或用redim界定一下維數和尺寸即可解決此問題。
改正後的**如下:
sub a()
dim arr() '定義一個動態陣列
dim i as integer
redim arr(1 to 3) '定義一個3個元素的陣列,並且對陣列進行初始化
arr(1) = 3
arr(2) = 4
arr(3) = 5'在下面語句重新定義一個10個元素的陣列,清除前面的元素,並重新分配新的儲存變數
redim arr(1 to 10)
for i = 1 to 10
arr(i) = i
next i
end sub,就可以了
擴充套件資料:
vb中的陣列越界
引用了不存在的陣列元素。
下標可能比下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。檢查陣列的宣告以確認其上界和下界。若使用的是重新指定範圍的陣列,應使用 ubound 和 lbound 函式來決定陣列訪問。
如果索引指定為變數,應檢查變數名的拼寫。
宣告陣列時沒有指定元素的數目。例如,下列的**就會導致此錯誤:
dim myarray() as integer
myarray(8) = 234 ' 導致錯誤 9。
visual basic 並不會將沒有指定範圍的陣列自動設為 0 – 10。相反必須使用 dim 或 redim 來指定陣列中元素的數目。
引用了不存在的集合成員。
試著使用 for each...next 結構代替指定元素下標。
使用速寫形式的下標,結果指定了錯誤的元素。
4樓:匿名使用者
所謂下標越界就是沒有找到的意思,這裡的與下標有關的就是工作簿workbooks、工作表sheets和單元格range了,這3者之一沒有找到都會提示下標越界。workbooks必須開啟了工作簿才能找得到,在這種前提下sheets必須存在才行,range只要語法不錯一般不會有問題。當然sheets最好寫成worksheets。
excel執行時錯誤'9'下標越界
5樓:余余
c:\users\騰\desktop\test.xlsx 這個檔名是否修改過或位置變動了,不在所指向的資料夾下?
6樓:excel小奇
excel提示下標越界是vba程式執行的一個錯誤提示,原因有以下幾個:
1、引用了不存在的陣列元素:下標比可能下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。
2、宣告陣列時沒有指定元素的數目:引用了不存在的集合成員。
3、使用速寫形式的下標,結果指定了錯誤的元素。
4、引用或操作的工作薄、工作表不存在。
7樓:談筱
"c:\users\騰\desktop\test.xlsx"檔案是否在存在
8樓:陽光上的橋
你的語句有三種可能造成下標越界,一是workbooks("itemmaster"),如果沒有itemmaster檔案開啟會造成報錯,另外,一般我們是寫workbooks("itemmaster.xls")
二是.sheets("sheet1"),如果工作簿沒有名為"sheet1"的表,會造成下標越界
三是cells(gyou1, 1).value,如果gyou1的值不是有效的行(例如小於0或者超過表的最大行數),會造成下標越界
具體是什麼造成,需要除錯。
9樓:匿名使用者
有可能是陣列,超過上屆導致的
報錯的時候,建議樓主選擇除錯,
然後會在報錯的一行**顯示黃色底色吧
滑鼠放到各個變數上看看,到底是哪個出的問題
excel下標越界問題 執行時錯誤9 下標越界
10樓:陽光上的橋
是不存在msgsheetname這個名字的工作表,如果這個msgsheetname的值是整數,excel是不是以名稱、而是序號去找表表,你先顯示一下變數的值就明白了,例如:
msgbox msgsheetname
11樓:
你是做學籍管理的吧,如果是的話,請看下圖你就明白了。
如果沒有「錯誤資訊」和「重複」這兩個表就新建一下就ok了。
12樓:excel小奇
excel提示下標越界是vba程式執行的一個錯誤提示,原因有以下幾個:
1、引用了不存在的陣列元素:下標比可能下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。
2、宣告陣列時沒有指定元素的數目:引用了不存在的集合成員。
3、使用速寫形式的下標,結果指定了錯誤的元素。
4、引用或操作的工作薄、工作表不存在。
非常急~excel 巨集,執行錯誤9,下標越界.
13樓:匿名使用者
我試過這個巨集了,能用。
下標越界的原因應該是你的excel文件中沒有「不可刪」這個工作表。更改工作表中的名稱為不可刪或者更改巨集中「不可刪」為資料來源工作表的名稱,比如「sheet1」。
14樓:勝雄
56666666666666
excel 為什麼 執行時錯誤9 下標越界
15樓:很多很多
excel中vba提示下標超界,說明物件不存在或者陣列元素不存在。
舉個簡單的例子:工作表中沒有"1月"這個工作表,卻用sheets("1月");陣列定義的是arr(1 to 10),卻用arr(11),都會出現下標越界的提示。
簡單的理解:下標越界就是引用超出了所在的範圍。
1、當我們在excel的vba中輸入下面**,執行,就會出現「執行時錯誤9下標越界」的提示。**如下:
sub a()
dim arr() as string
arr(1) = "你好"
end sub
2、其實上面的「執行時錯誤9下標越界」是因為定義的動態陣列沒有確定維數和尺寸。定義成固定維數和尺寸的,或用redim界定一下維數和尺寸即可解決此問題。
改正後的**如下:
sub a()
dim arr() '定義一個動態陣列
dim i as integer
redim arr(1 to 3) '定義一個3個元素的陣列,並且對陣列進行初始化
arr(1) = 3
arr(2) = 4
arr(3) = 5'在下面語句重新定義一個10個元素的陣列,清除前面的元素,並重新分配新的儲存變數
redim arr(1 to 10)
for i = 1 to 10
arr(i) = i
next i
end sub,就可以了
擴充套件資料:
vb中的陣列越界
引用了不存在的陣列元素。
下標可能比下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。檢查陣列的宣告以確認其上界和下界。若使用的是重新指定範圍的陣列,應使用 ubound 和 lbound 函式來決定陣列訪問。
如果索引指定為變數,應檢查變數名的拼寫。
宣告陣列時沒有指定元素的數目。例如,下列的**就會導致此錯誤:
dim myarray() as integer
myarray(8) = 234 ' 導致錯誤 9。
visual basic 並不會將沒有指定範圍的陣列自動設為 0 – 10。相反必須使用 dim 或 redim 來指定陣列中元素的數目。
引用了不存在的集合成員。
試著使用 for each...next 結構代替指定元素下標。
使用速寫形式的下標,結果指定了錯誤的元素。
16樓:余余
c:\users\騰\desktop\test.xlsx 這個檔名是否修改過或位置變動了,不在所指向的資料夾下?
17樓:陽光上的橋
是不存在msgsheetname這個名字的工作表,如果這個msgsheetname的值是整數,excel是不是以名稱、而是序號去找表表,你先顯示一下變數的值就明白了,例如:
msgbox msgsheetname
18樓:匿名使用者
出錯時,點除錯,開啟本地視窗,看下是哪個表出錯。
比如,出錯時顯示i為5,那麼檢查test5月表名中是否包含空格及其他會導致錯誤的情況。
或者,根本就沒有test5月這張表。
**沒看出問題
19樓:匿名使用者
excel提示下標越界是vba程式執行的一個錯誤提示,原因有以下幾個:
1、引用了不存在的陣列元素:下標比可能下標範圍大或小,或是在應用程式中這一邊的陣列沒有指定範圍。
2、宣告陣列時沒有指定元素的數目:引用了不存在的集合成員。
3、使用速寫形式的下標,結果指定了錯誤的元素。
4、引用或操作的工作薄、工作表不存在。
vba問題「提示執行時錯誤9 下標越界」 100
20樓:不想起名字了
修改你相關行
從第四行開始
dim bw as workbook
set wb=workbookk.open("c:\每日溼貨報表.xls")
wb.worksheets("中創kfc入庫").cells.delete shift:=xlup
wb.worksheets("ph溼貨入庫單").cells.delete shift:=xlup
wb.worksheets("每日溼貨出貨重量").cells.delete shift:=xlup
你的程式出錯是sheets(....)預設的是從 當前工作簿中找
你應該不用預設值,用全限定符
從上面**看,你是從錄製的巨集修改的
中間還有很多select,這些都不用
vba執行時錯誤9下標越界,VBA執行時錯誤9,下標越界
excel中vba提示下標超界,說明物件不存在或者陣列元素不存在。舉個簡單的例子 工作表中沒有 1月 這個工作表,卻用sheets 1月 陣列定義的是arr 1 to 10 卻用arr 11 都會出現下標越界的提示。簡單的理解 下標越界就是引用超出了所在的範圍。1 當我們在excel的vba中輸入下...
excel中執行錯誤9,下標越界,請各位大俠給指點指點,如下
你斷點監控一下 看是執行到什麼地方的時候提示下表越界 我的excel巨集出了問題,執行時錯誤9,下標越界,請各位大俠幫助,謝謝!請在立即視窗輸入如下命令顯示工作簿物件的name 顯示的內容才是你的當前工作簿的名專稱。因屬為名稱被改掉了 如我附件所示,thisworkbook被改名為 itisrena...
VBA執行時錯誤 429 ACTIVEX部件不能建立物件
視窗標題 refclass 提示資訊 執行時錯誤 429 activex 部件不能建立物件 請重新註冊 us pz.dll,即 regsvr32 us pz.dll 如果不能解決問題,請解除安裝後重新安裝軟體。問題原因 某動態 dll 檔案或 ocx 檔案註冊不正確 activex 部件不能建立 執...