在表单被删除之后,数组variables不具有值

有人能解释为什么发生这种情况 我有一个数组variablesLoans(),它存储了几个稍后需要用于格式化数据透视表的string。 这些值从“基金名单”表中存储。 然后工作表被删除,但我仍然需要使用的值。 当我试图在工作表被删除后使用Loans()variables时,Excel返回一个对象所需的错误。 我发现解决这个问题的方法是不删除工作表,但是有人知道这是为什么吗? 相关代码如下。

Sheets("Fund List").Select ' some code Dim Loans() As Variant Dim index As Integer If LN > 0 Then ReDim Loans(LN - 1) index = 0 For i = 1 To LastRow If Range("H" & i).Value = 3 Then Set Loans(index) = Range("A" & i) index = index + 1 End If Next i End If ' some more code Sheets("Fund List").Delete ' more code Set objField = objTable.PivotFields("Fund") If LN > 0 Then For index = 0 To UBound(Loans) ' I get an object required error on the following line: LNFund = Loans(index) objField.PivotItems(LNFund).Visible = False Next index End If 

您正在将variables数组元素设置为Range对象 。

 Set Loans(index) = Range("A" & i) 

改为指定Range.Value或Range.Value2属性 。

 Loans(index) = Range("A" & i).Value2 

注意不要Set