回覆列表
  • 1 # 大大大-海

    下標越界這個是VBA裡面的問題,主要指你輸入的命令值已經超過了它的邊界值即最值(最大最小)這個要根據具體情況具體解決:舉個例子:VBA中個二維陣列,arr(1 to 10,1 to 10),代表他可以儲存arr(x,y) (注: x取值 1到10,y取值1到10.)100個數據(或者物件);如果你讓x,y取了其他值,那麼系統就報錯,下標越界處理這類越界的問題有兩種方法:1、粗處理:定義一個比較大的陣列,保證控制元件足夠。弊端:佔記憶體;2、細處理:根據實際情況定義陣列大小,用redim 及時調整陣列的大小;以上例子是針對陣列的舉例;其他如excel只包含三個sheet,你程式碼出現sheets(4)也會報錯,告訴你下標越界。

  • 2 # 滴逃逃

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

    1、舉個簡單的例子:工作表中沒有"1月"這個工作表,卻用Sheets("1月");陣列定義的是arr(1 to 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

  • 中秋節和大豐收的關聯?
  • “不講信用”的句子有哪些?