我通过以下方式声明了一个二维数组:
WS_array_bodem = [{"Gewasbescherming" ,"range_gewas"; "Bodem-Bemesting","range_bodem"; "Biodiversiteit", "range_biodi"; "Water", "range_water";"Energie","range_energ"}]
然后我想使用这个2d数组的第一列中的值作为下面的工作表的名称。我首先将这些数组定义为1d,然后它工作,但由于某种原因添加额外的维度会导致代码失败,显示:
错误1004“应用程序定义或对象定义的错误”
使用msgbox(WS_array_bodem(1,1)
我得到了字符串:Gewasbescherming。那么下面的代码出了什么问题呢?
Dim lastrow_gewas As Integer
lastrow_gewas = WB_score.Worksheets(WS_array_bodem(1, 1)).Range("B" & Rows.Count).End(xlUp).row
Dim range_gewas As Range
Set range_gewas = WB_score.Worksheets(WS_array_bodem(1, 1)).Range("B1:B" & lastrow_gewas)
WB_score定义为:
Dim WB_score As Workbook
If BookOpen(scorebook) Then
Else
Workbooks.Open (ThisWorkbook.Path & "\" & scorebook)
End If
Set WB_score = Application.Workbooks(scorebook)
工作正常。
我试图引用的工作表存在于WB_score中。
答案 0 :(得分:0)
我看到至少3个可能的错误。尝试这样来避免它们:
Dim lastrow_gewas As Long
Dim wks As Worksheet
Set wks = wb_score.Worksheets(WS_array_bodem(1, 1))
With wks
lastrow_gewas = .Range("B" & .Rows.Count).End(xlUp).Row
End With
可能的错误:
Set wks
行中收到错误。