循环数组:对象variables或未设置块,不支持属性或方法等

我想从一个Excel工作簿(1)中获取多个信息,并使用Select Case将其插入到另一个Excel工作簿(2)中的某些单元格中。 我用一个数组来存储Excel工作簿(1)中的信息,然后想循环数组来插入不同的值。

这是我到目前为止:

Private Sub CommandButton21_Click() Dim MyArray(2 To 6) As Range, Time As Single, Description As String MyArray(2) = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").Range("C2") MyArray(3) = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").Range("C3") MyArray(4) = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").Range("C4") MyArray(5) = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").Range("C5") MyArray(6) = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").Range("C6") Time = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").MyArray(2, 6).Offset(0, 3).value Description = Workbooks("case_time_report.xlsm").Worksheets("case_time_report.csv").MyArray(2, 6).Offset(0, 8).value For i = 2 To UBound(MyArray) Select Case MyArray(i).text Case "Correspondence" Cells(i, 1).Offset(0, 18) = Time Cells(i, 1).Offset(0, 1) = Description Case "VTC" Cells(i, 1).Offset(0, 14) = Time Cells(i, 1).Offset(0, 1) = Description Case "Travel" Cells(i, 1).Offset(0, 17) = Time Cells(i, 1).Offset(0, 1) = Description Case "Telephone Call" Cells(i, 1).Offset(0, 18) = Time Cells(i, 1).Offset(0, 1) = Description Case "Client Meeting" Cells(i, 1).Offset(0, 14) = Time Cells(i, 1).Offset(0, 1) = Description Case "Court Hearing" Cells(i, 1).Offset(0, 5) = Time Cells(i, 1).Offset(0, 1) = Description Case "Motions" Cells(i, 1).Offset(0, 16) = Time Cells(i, 1).Offset(0, 1) = Description End Select Next i End Sub 

我不断收到像“对象variables或块未设置”和“不支持属性或方法”的问题。

你有几个非常小的语法问题,你需要先解决:

  • Dim MyArray()作为一维数组,但将其用作二维数组。
  • 使用MyArray(i)而不是MyArray(i).text