循环图表和工作表作为工作表失败。 究竟是什么导致了错误?
我试图循环图表和图表作为变种。
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 = xlSheetVisible
当ThisWorkbook.Sheets(vSheets(i, 1)).Name
是SheetName3
。 我不明白为什么上面的子程序不起作用。
我认为,当图表是我应该得到一个错误。 我会理解的。 我不明白为什么当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