みなさん、エラーの解決策を見つけようとしていますが、これを解決するための同様の例がネット上で見つかりません。ループに入ったときに変数 (i) を 3 に設定し、最初の if ステートメントに入ると正常に実行され、ファイルがコピーされてシート 3 に挿入されますが、4 にインクリメントされて 2 番目の if ステートメントに入ると、エラー 9 オン
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