循环图表和工作表作为工作表失败。 究竟是什么导致了错误?

我试图循环图表和图表作为变种。

Sub ShowSheets(vSheets() As Variant) Dim i As Long For i = LBound(vSheets, 1) To UBound(vSheets, 1) Dim wks As Variant Set wks = ThisWorkbook.Sheets(vSheets(i, 1)) wks.Visible = xlSheetVisible Next i End Sub 

vSheets()包含下列图表和图表的名称:

 SheetName1 SheetName2 ChartName1 SheetName3 SheetName4 

子宫颈不成功。 当wks是名为SheetName3的工作表时,我得到了行wks.Visible = xlSheetVisible上的错误。

错误是:

 Run-time error '-2147417848 (80010108)': Method 'Visible' of object '_Worksheet' failed 

为什么我在该特定行上发生错误?

下面的子程序也是不成功的:

 Sub ShowSheets(vSheets() As Variant) Dim i As Long For i = LBound(vSheets, 1) To UBound(vSheets, 1) ThisWorkbook.Sheets(vSheets(i, 1)).Visible = xlSheetVisible Next i End Sub 

在相同的情况下,我得到了一个错误。 在ThisWorkbook.Sheets(vSheets(i, 1)).Visible = xlSheetVisibleThisWorkbook.Sheets(vSheets(i, 1)).NameSheetName3 。 我不明白为什么上面的子程序不起作用。

我认为,当图表是我应该得到一个错误。 我会理解的。 我不明白为什么当wks是图表之后的第一张工作表时出现错误。

下面的子程序工作,但我仍然无法弄清楚为什么我得到了错误,我在上面的子程序:

是什么导致了前两个子节点的错误? 为什么当工作表是SheetName3时出现错误?

 Sub ShowSheets(vSheets() As Variant) Dim i As Long For i = LBound(vSheets, 1) To UBound(vSheets, 1) If TypeName(ThisWorkbook.Sheets(vSheets(i, 1))) = "Worksheet" Then ThisWorkbook.WorkSheets(vSheets(i, 1)).Visible = xlSheetVisible End If Next i For i = LBound(vSheets, 1) To UBound(vSheets, 1) Debug.Print (TypeName(ThisWorkbook.Sheets(vSheets(i, 1)))) If TypeName(ThisWorkbook.Sheets(vSheets(i, 1))) = "Chart" Then ThisWorkbook.Charts(vSheets(i, 1)).Visible = xlSheetVisible End If Next i End Sub