嘿,大家我一直在试图找到解决我的错误,但我无法找到一个类似的例子在网络上解决这个问题。我有一个变量(我)设置为3,当它进入循环,然后进入第一个if语句它运行良好,文件被复制并插入到表3,但是一旦它增加到4,并进入第二条if语句我得到错误9上错误9超出范围.Sheets(i)
Set wks4 = wkb.Sheets(i)
这是下面的一些完整的代码,希望你们可以帮我。
Set Excel_App = New EXCEL.Application
Excel_App.Visible = False
Set wkb = EXCEL.Workbooks.Add
Set wks = wkb.Sheets(1) 'want first sheet
With wks
......
'extra code involing input to sheet 1
End With
Dim wkb2 As EXCEL.Workbook
Set wkb2 = EXCEL.Application.Workbooks.Open(strDir & "\DETAILS.xlsx")
wkb2.ActiveSheet.Cells.Select
Selection.Copy
Set wks2 = wkb.Sheets(2)
With wks2
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
End With
wkb2.Close
i = 3
Do While Not rstTypes.EOF
If rstTypes![TYPE] Like "GROUPED" Then
DoCmd.OutputTo acOutputReport, "EXCEL_CBD_CAP_CR", acFormatXLS, strDir & "\SAMEDAY_NEXTDAY_FUTURE.xls", 0
Dim wkb3 As EXCEL.Workbook
Set wkb3 = EXCEL.Application.Workbooks.Open(strDir & "\SAMEDAY_NEXTDAY_FUTURE.xls")
wkb3.ActiveSheet.Cells.Select
Selection.Copy
Set wks3 = wkb.Sheets(i)
With wks3
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
wkb3.Close
i = i + 1
End If
If rstTypes![TYPE] Like "GROUPED2" Then
DoCmd.OutputTo acOutputReport, "EXCEL_ND/FUT_CAP_CR", acFormatXLS, strDir & "\NEXTDAY_FUTURE.xls", 0
Dim wkb4 As EXCEL.Workbook
Set wkb4 = EXCEL.Application.Workbooks.Open(strDir & "\NEXTDAY_FUTURE.xls")
wkb4.ActiveSheet.Cells.Select
Selection.Copy
Set wks4 = wkb.Sheets(i)
With wks4
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
wkb4.Close
Kill (strDir & "\NEXTDAY_FUTURE.xls")
i = i + 1
End If
rstTypes.MoveNext
Loop
首先,真的是愚蠢的问题,必须问......你是否在你的代码中声明wks4? –