Vba 错误9超出范围。工作表(i)
大家好,我一直在努力寻找解决我的错误的方法,但我在网上找不到类似的例子来解决这个问题。当变量(I)进入循环时,将其设置为3,然后输入第一个if语句。如果运行正常,则会复制文件并将其插入第3页,但一旦其增加到4,则会输入第二个if语句。我收到错误9Vba 错误9超出范围。工作表(i),vba,ms-access,excel,ms-access-2007,Vba,Ms Access,Excel,Ms Access 2007,大家好,我一直在努力寻找解决我的错误的方法,但我在网上找不到类似的例子来解决这个问题。当变量(I)进入循环时,将其设置为3,然后输入第一个if语句。如果运行正常,则会复制文件并将其插入第3页,但一旦其增加到4,则会输入第二个if语句。我收到错误9 Set wks4 = wkb.Sheets(i) 这是下面一些完整的代码,希望你们能帮助我 Set Excel_App = New EXCEL.Application Excel_App.Visible = False Set wkb =
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
这意味着第i张图纸不存在,每次您想要与具有战略位置的图纸交互时,请检查此项:
如果i>thishworkbook.Worksheets.Count,然后退出Do
这意味着第i张工作表不存在,请在每次要与具有战略位置的工作表交互时选中此选项:
如果我>thishworkbook.Worksheets.Count,然后退出Do
您可能没有第四张工作表。根据您的代码,我假设您希望该工作表存在,因此需要在运行时添加该工作表。您应该按照如下逻辑包装wks3和wks4的工作表设置:
if wkb.Sheets.Count < i then
Set wks3 = wkb.sheets.add
end if
如果wkb.Sheets.Count
后来
if wkb.Sheets.Count < i then
Set wks4 = wkb.sheets.add
end if
如果wkb.Sheets.Count
您可能没有第四张工作表。根据您的代码,我假设您希望该工作表存在,因此需要在运行时添加该工作表。您应该按照如下逻辑包装wks3和wks4的工作表设置:
if wkb.Sheets.Count < i then
Set wks3 = wkb.sheets.add
end if
如果wkb.Sheets.Count
后来
if wkb.Sheets.Count < i then
Set wks4 = wkb.sheets.add
end if
如果wkb.Sheets.Count
还记得第一张纸将是与数组不同的纸1。还记得第一张纸将是与数组不同的纸1。首先,必须问一个非常愚蠢的问题。。。您是否在代码中声明了wks4?首先,必须问一个非常愚蠢的问题。。。您是否在代码中声明了wks4?