-
通常,在引用工作簿或工作表時,最好直接引用名稱,有時必須先啟用工作簿或工作表,然後才能使用某些屬性或方法(但不是全部)! 否則,很容易犯像問題這樣的錯誤。
-
一般來說,下標越界是因為沒有找到你要找的東西,比如檔名,比如表的表名,某個陣列的列和列都超出了標準,等等。
你沒有說問題出在那句話裡,所以不好說。
習慣於查詢問題的方法是使用斷點,找到出錯的句子,然後檢視那裡是否所有變數名稱,或者您想要的名稱是否真的存在。
我沒有用過它,如果它建立了乙個新流程,你會遇到很多麻煩。
-
最好把**內容發出去,不然看起來不會有點頭暈。
false“
您無需在 Excel 巨集中新增這樣的工作簿。 只是 mybook = 線上。
-
我看了好幾遍,程式沒什麼大問題,有個小問題,不知道是不是這個:
dim path as string
path =
path 是系統的關鍵字,在定義變數時,盡量避免使用這些關鍵字的名稱。
此外,還使用了另乙個程式 writelocalinfo 和乙個自定義函式 writeinfo
更新反饋表單中的資訊。
writelocalinfo
set xlsheet =
更新彙總表資訊。
flag = writeinfo(xlsheet) 可能是 WriteLocalInfo 程式和 WriteInfo 自定義函式中的錯誤。
-
原因:物件不存在或陣列元素不存在。
1.以簡的飢餓為例:工作表中沒有人"一月"但是,此工作表使用工作表("一月");陣列定義了 arr(1 到 10),但將使用 arr(11),並且下標將越界。
2.更正後的**如下:
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
3.然後單擊“執行”,它不會提示。
-
所謂下標越界是找不到的,這裡的下標是和工作簿、工作表和單元格有關的,這三者之一會提示下標出界。 工作簿必須開啟才能找到工作簿,在這種情況下工作表必須存在,只要語法好,一般沒有問題。 當然,工作表最好寫成工作表。
-
1.在工作表中設定按鈕並將其分配給巨集。
2.在VBA裝置中輸入以下**。 湮滅(此 ** 表示整個區域的單元格,如果它是乙個空格,則隱藏空間所在的整個列。
3、操作時折頭有問題,下標越界,無法執行。
4.**中的“sheet1”工作表根本不是,因為工作表的標籤名稱是“chart”,所以**執行時找不到"sheet1"工作表,所以提示下標越界。
5.點選異常提示下方的“除錯”按鈕,將埋數中的“sheet1”改為“chart”,然後點選按鈕執行巨集,下表中正常操作,無越界提示。
筆記:
儘管 Excel 提供了大量的使用者介面功能,但它仍然保留了第乙個電子表格軟體 VisicalC 的特徵:行和列組成單元格,資料、與資料相關的公式或對其他單元格的絕對引用儲存在單元格中。
-
陣列元素和集合成員只能在定義的範圍內訪問。
此錯誤的原因和解決方法如下:
引用了不存在的陣列元素。
下標可能大於或小於下標範圍,或者應用程式這一側的陣列可能沒有指定的範圍。 檢查陣列的宣告以確認其上限和下限。 如果使用的是重新作用域的陣列,則應使用 ubound 和 lbound 函式來確定陣列訪問。
如果將索引指定為變數,則應檢查變數名稱的拼寫。
宣告陣列時未指定元素數。 例如,以下 ** 將導致此錯誤: dim myarray() as integer myarray(8) = 234'導致錯誤。
Visual Basic 不會自動將沒有指定範圍的陣列設定為 0 10。
相反,必須使用 dim 或 redim 來指定陣列中的元素數。
引用不存在的集合成員。
嘗試使用每個...。next 結構,而不是指定元素下標。
使用下標的簡寫形式,結果是指定了錯誤的元素。
例如,在集合上使用 !時運算元!系統會自動分配乙個金鑰。
例如,object!這是一樣的。
在這種情況下,如果集合中的鍵名表示不正確的鍵,則會發生錯誤。
若要改進此錯誤,請在集合物件中使用正確的鍵名或索引。
-
檢查檔案是否重新命名或路徑是否修改,下標越界,因為找不到檔案。
-
下標越界,這是VBA中的乙個問題,主要是指你輸入的命令值已經超出了它的邊界值,也就是最大值(最大值和最小值),應該根據具體情況來解決:
例如,VBA 中的二維陣列 arr(1
to10,1
to10),這意味著他可以儲存 arr(x,y) (注意:x 是乙個值。
1 到 10,y 到 10100 個資料(或物件); 如果讓 x,y 取其他值,則系統將報告錯誤,下標將越界。
處理此類跨境問題有兩種方法:
1. 粗處理:定義乙個相對較大的陣列,以確保控制項足夠。 缺點:占用記憶體;
2、細粒度:根據實際情況定義陣列的大小,並使用redim及時調整陣列的大小;
上面的例子是針對陣列的; 其他的,如excel只包含三張紙,當你出現紙(4)時,你也會報告乙個錯誤,告訴你下標越界了。