0
我有一个工作簿4 sheets- 首先,二,三和四。我试图在每张表格后面添加一张额外的表格来创建数据透视表。他们将被命名为第一枢轴,第二枢轴,第三枢轴和第四枢轴。“Workbook.Sheets.Add后” 给出了 “下标越界” 的错误(VBA)
我能够创建第一枢轴片,但我得到一个下标越界错误。我正在使用的代码是
Function Pivotizer(FilePathAndName As String)
On Error GoTo ErrorTeller
Dim NewBook As Workbook, CurrSheet, sht As Worksheet, i, FinalCol, ColIndex As Integer, FinalRow As Long
Dim pvtCache As PivotCache, pvt As PivotTable, StartPvt, SrcData, KountOf As String
Set NewBook = Workbooks.Open(FilePathAndName)
For Each CurrSheet In NewBook.Worksheets
FinalRow = CurrSheet.Cells.Find(What:="*", After:=CurrSheet.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
FinalCol = CurrSheet.Cells(1, CurrSheet.Columns.Count).End(xlToLeft).Column
If CurrSheet.Name = "First" Then
NewBook.Sheets.Add After:=Worksheets(CurrSheet.Index)
NewBook.Sheets(CurrSheet.Index + 1).Name = "First Pivot"
ElseIf CurrSheet.Name = "Second" Then
NewBook.Sheets.Add After:=Worksheets(CurrSheet.Index)'<--- This is where I get the error
NewBook.Sheets(CurrSheet.Index + 1).Name = "Second Pivot"
End If
Next
Exit Function
ErrorTeller:
MsgBox Err.Description
End Function
出于某种原因,CurrSheet.Index似乎并不奏效,第二次虽然它代表了一个有效的数字(我查使用一个MsgBox)。
有人能告诉我我做错了什么吗?
此代码适用于我,直到所有现有工作表都包含一些数据。我之所以说一些数据是因为,如果工作表中没有数据,'.Find'将会失败。我已经解释了[Here](http://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba)请参阅Application.WorksheetFunction.CountA(.Cells)该链接中的<> 0 –