EXCEL VBA 巨集下標越界問題

發布 科技 2024-07-15
10個回答
  1. 匿名使用者2024-01-30

    通常,在引用工作簿或工作表時,最好直接引用名稱,有時必須先啟用工作簿或工作表,然後才能使用某些屬性或方法(但不是全部)! 否則,很容易犯像問題這樣的錯誤。

  2. 匿名使用者2024-01-29

    一般來說,下標越界是因為沒有找到你要找的東西,比如檔名,比如表的表名,某個陣列的列和列都超出了標準,等等。

    你沒有說問題出在那句話裡,所以不好說。

    習慣於查詢問題的方法是使用斷點,找到出錯的句子,然後檢視那裡是否所有變數名稱,或者您想要的名稱是否真的存在。

    我沒有用過它,如果它建立了乙個新流程,你會遇到很多麻煩。

  3. 匿名使用者2024-01-28

    最好把**內容發出去,不然看起來不會有點頭暈。

    false“

    您無需在 Excel 巨集中新增這樣的工作簿。 只是 mybook = 線上。

  4. 匿名使用者2024-01-27

    我看了好幾遍,程式沒什麼大問題,有個小問題,不知道是不是這個:

    dim path as string

    path =

    path 是系統的關鍵字,在定義變數時,盡量避免使用這些關鍵字的名稱。

    此外,還使用了另乙個程式 writelocalinfo 和乙個自定義函式 writeinfo

    更新反饋表單中的資訊。

    writelocalinfo

    set xlsheet =

    更新彙總表資訊。

    flag = writeinfo(xlsheet) 可能是 WriteLocalInfo 程式和 WriteInfo 自定義函式中的錯誤。

  5. 匿名使用者2024-01-26

    原因:物件不存在或陣列元素不存在。

    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.然後單擊“執行”,它不會提示。

  6. 匿名使用者2024-01-25

    所謂下標越界是找不到的,這裡的下標是和工作簿、工作表和單元格有關的,這三者之一會提示下標出界。 工作簿必須開啟才能找到工作簿,在這種情況下工作表必須存在,只要語法好,一般沒有問題。 當然,工作表最好寫成工作表。

  7. 匿名使用者2024-01-24

    1.在工作表中設定按鈕並將其分配給巨集。

    2.在VBA裝置中輸入以下**。 湮滅(此 ** 表示整個區域的單元格,如果它是乙個空格,則隱藏空間所在的整個列。

    3、操作時折頭有問題,下標越界,無法執行。

    4.**中的“sheet1”工作表根本不是,因為工作表的標籤名稱是“chart”,所以**執行時找不到"sheet1"工作表,所以提示下標越界。

    5.點選異常提示下方的“除錯”按鈕,將埋數中的“sheet1”改為“chart”,然後點選按鈕執行巨集,下表中正常操作,無越界提示。

    筆記:

    儘管 Excel 提供了大量的使用者介面功能,但它仍然保留了第乙個電子表格軟體 VisicalC 的特徵:行和列組成單元格,資料、與資料相關的公式或對其他單元格的絕對引用儲存在單元格中。

  8. 匿名使用者2024-01-23

    陣列元素和集合成員只能在定義的範圍內訪問。

    此錯誤的原因和解決方法如下:

    引用了不存在的陣列元素。

    下標可能大於或小於下標範圍,或者應用程式這一側的陣列可能沒有指定的範圍。 檢查陣列的宣告以確認其上限和下限。 如果使用的是重新作用域的陣列,則應使用 ubound 和 lbound 函式來確定陣列訪問。

    如果將索引指定為變數,則應檢查變數名稱的拼寫。

    宣告陣列時未指定元素數。 例如,以下 ** 將導致此錯誤: dim myarray() as integer myarray(8) = 234'導致錯誤。

    Visual Basic 不會自動將沒有指定範圍的陣列設定為 0 10。

    相反,必須使用 dim 或 redim 來指定陣列中的元素數。

    引用不存在的集合成員。

    嘗試使用每個...。next 結構,而不是指定元素下標。

    使用下標的簡寫形式,結果是指定了錯誤的元素。

    例如,在集合上使用 !時運算元!系統會自動分配乙個金鑰。

    例如,object!這是一樣的。

    在這種情況下,如果集合中的鍵名表示不正確的鍵,則會發生錯誤。

    若要改進此錯誤,請在集合物件中使用正確的鍵名或索引。

  9. 匿名使用者2024-01-22

    檢查檔案是否重新命名或路徑是否修改,下標越界,因為找不到檔案。

  10. 匿名使用者2024-01-21

    下標越界,這是VBA中的乙個問題,主要是指你輸入的命令值已經超出了它的邊界值,也就是最大值(最大值和最小值),應該根據具體情況來解決:

    例如,VBA 中的二維陣列 arr(1

    to10,1

    to10),這意味著他可以儲存 arr(x,y) (注意:x 是乙個值。

    1 到 10,y 到 10100 個資料(或物件); 如果讓 x,y 取其他值,則系統將報告錯誤,下標將越界。

    處理此類跨境問題有兩種方法:

    1. 粗處理:定義乙個相對較大的陣列,以確保控制項足夠。 缺點:占用記憶體;

    2、細粒度:根據實際情況定義陣列的大小,並使用redim及時調整陣列的大小;

    上面的例子是針對陣列的; 其他的,如excel只包含三張紙,當你出現紙(4)時,你也會報告乙個錯誤,告訴你下標越界了。

相關回答
7個回答2024-07-15

退出while的條件由rs條數控制,但記錄數可能超過x陣列的上限,導致j=j+1越界,所以j=j+1應該控制: >>>More

5個回答2024-07-15

在Excel中,VBA指示下標越界,指示物件不存在或陣列元素不存在。 >>>More

16個回答2024-07-15

在VB中,陣列第乙個元素的下標預設值為0,即c(8)最後乙個元素的下標為7,沒有8,i=8當然下標越界了! >>>More

16個回答2024-07-15

程式:<>

測試資料:<> >>>More

11個回答2024-07-15

在工具選項“重新計算”中,有乙個自動重新計算選項,單擊它,它將自動重新整理。 >>>More