我有一个VBA功能,用于从活动工作簿中复印工作表的列表并将其保存。我得到下标超出范围错误。任何帮助,将不胜感激?复制多个工作表时,下标超出范围错误VBA
Private Sub exporttoexcel(excelFileName)
excelFileName = 'File in my local'
Dim mySheetList() As String
Dim WS As Worksheets
Dim WB As Workbook
MsgBox excelFileName
'Dim sourceWB As Workbook
'Dim destWB As Workbook
'
'Set sourceWB = ActiveWorkbook
'sourceWB.Sheets.Copy
'
'Set WB = Workbooks(excelFileName)
ReDim mySheetList(0 To (ThisWorkbook.Sheets.Count) - 1)
Dim a As Integer
a = 0
For Each WS In ActiveWorkbook.Worksheets
mySheetList(a) = WS.Name
a = a + 1
Next
Dim Fileobj
Set Fileobj = CreateObject("Scripting.FileSystemObject")
If Fileobj.FileExists(excelFileName) Then
Fileobj.DeleteFile excelFileName
End If
' 'actually save
Worksheets(mySheetList).Copy '<<<<<<< RUN-TIME ERROR 9 RAISED HERE
ActiveWorkbook.SaveAs FileName:=excelFileName
'MsgBox excelFileName
'ThisWorkbook.SaveAs FileName:=excelFileName, FileFormat:=xlXMLSpreadsheet
Application.Wait (Now + TimeValue("0:00:15"))
WB.Close
End Sub
错误发生在哪里?在哪一行? – Lowpar
另请参阅[运行时错误9:下标超出范围](http://stackoverflow.com/documentation/vba/8917/vba-run-time-errors/27748/run-time-error-9-subscript-超出范围#t = 20170407145205001556)的文件。 –
'昏暗的WS作为工作表'应该'昏暗的WS作为工作表' - '工作表“是一个集合类,没有一个'名称'属性,所以我不知道你的'For Each WS In ActiveWorkbook.Worksheest '循环可以迭代一次而不会导致运行时错误13 /类型不匹配。 –