Excel 2010宏错误“;1004打开工作簿的方法失败“;

Excel 2010宏错误“;1004打开工作簿的方法失败“;,excel,vba,Excel,Vba,office中的两个用户在运行宏时遇到上述错误。在我的研究中,大多数论坛都指出了可能的文件损坏 我尝试修复有问题的Excel文件“PO_Summary”,并尝试将内容复制到新文件中,然后用新文件替换旧文件,等等。我还尝试传递参数CorruptLoad:xlrepair选项。但现在我发现了一个错误: 运行时错误9脚本超出范围 这是剧本 子需求号() Dim flname$、srno、newsrno、nsrno$、Leng、I、fname$、用户$ Dim str1$、str2$、str3$、str

office中的两个用户在运行宏时遇到上述错误。在我的研究中,大多数论坛都指出了可能的文件损坏

我尝试修复有问题的Excel文件“PO_Summary”,并尝试将内容复制到新文件中,然后用新文件替换旧文件,等等。我还尝试传递参数CorruptLoad:xlrepair选项。但现在我发现了一个错误:

运行时错误9脚本超出范围

这是剧本

子需求号()
Dim flname$、srno、newsrno、nsrno$、Leng、I、fname$、用户$
Dim str1$、str2$、str3$、str4$、str5$、str6$、str7$、str8$、str9$、str10$、str11$、str12$$
变暗r、j、d为长
'错误处理
如果(ActiveSheet.Range(“AH2:AH2”)>0,则
str4$“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
str5$=ActiveSheet.Range(“AH3:AH3”)'错误1
str6$=ActiveSheet.Range(“AH4:AH4”)'错误2
str7$=ActiveSheet.Range(“AH5:AH5”)
str8$=ActiveSheet.Range(“AH6:AH6”)
str9$=ActiveSheet.Range(“AH7:AH7”)
str10$=ActiveSheet.Range(“AH8:AH8”)
str11$=ActiveSheet.Range(“AH9:AH9”)
str12$“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
ConstVbinfotext=2147483625
j=MsgBox(“由于以下错误,无法生成请购单”。&_
Chr(13)&Chr(13)&str4$&Chr(13)&Chr(13)&str5$&Chr(13)&str6$&Chr(13)&str7$&Chr(13)&str8$&_
Chr(13)&str9$&Chr(13)&str10$&Chr(13)&str11$&Chr(13)&str12$&Chr(13)&Chr(13)_
+“一旦字段正确填写,重新生成请购单”&Chr(13)_
VBApplicationModel+vbCancelonly,“I N C O M P E T E申请表”)
其他的
r=MsgBox(“您确定要生成请购单吗?”_
vbQuestion+vbYesNo,“PCDO采购申请”)
”“如果可以的话
如果r=vbYes,则
flname$=“C:\Users\jamscheer\Desktop\Macro\u Excel\Benefit\u Purch\u Reqn\Counter\reqno.TXT”
打开flname$,输入为1
而不是EOF(1)
输入#1,srno
温德
关闭1
newsrno=srno+1
用户$=UCase(Application.UserName)
打开输出为1的flname$
写#1,新闻
关闭1
nsrno$=newsrno
ActiveSheet.Shapes(“按钮42”)。选择
选择。删除
ActiveSheet.Shapes(“按钮61”)。选择
选择。删除
fname$=UCase(“C:\Users\jamscheer\Desktop\Macro\u Excel\Benefit\u Purch\u Reqn\”+nsrno$+“\u“+user$+”.xls”)
ThisWorkbook.CheckCompatibility=False
ActiveWorkbook.SaveAs文件名:=fname$,文件格式:=xlNormal,密码:=“Benreqn”,WriteResPassword:=“”,ReadOnlyRecommended:=False,CreateBackup:=False
str1$=“您的购买请求已注册为”
str2$=“”&(nsrno$)&“&”用户$&“.xls”
ActiveSheet.Range(“J2:J2”)=nsrno$
'更新摘要文件
工作表(“PO”)。选择
工作表(“数据库”)。可见=真
工作表(“数据库”)。选择
解除保护
工作表(“数据库”)。选择
范围(“A2:X21”)。选择
选择,复制
范围(“A2”)。选择
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
范围(“A2”)。选择
Dim COUNT非空为整数,myRange为范围
设置myRange=列(“A:A”)
countnonblank=Application.WorksheetFunction.Count(myRange)
范围(“A”和计数非空+1,“X2”)。选择
选择,复制
ActiveWindow.SelectedSheets.Visible=False
工作表(“PO”)。选择
工作簿。打开的文件名:=_
“C:\Users\jamscheer\Desktop\Macro\u Excel\Benefit\u Purch\u requn\PO\u Smmary.xlsx”,CorruptLoad:=xlrepair
表格(“摘要”)。选择
范围(“A1”)。选择
NextRow=范围(“A65536”)。结束(xlUp)。行+1
范围(“A”&NextRow)。选择
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
范围(“A1:V25000”)。选择
Application.CutCopyMode=False
ActiveWorkbook.Worksheets(“Sheet1”).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(“Sheet1”).Sort.SortFields.Add关键字:=范围(“A2:A25000”)_
,SortOn:=xlSortOnValues,顺序:=xlAscending,数据选项:=xlSortNormal
使用ActiveWorkbook.Worksheets(“Sheet1”).Sort
.SetRange范围(“A1:X25000”)
.Header=xlYes
.MatchCase=False
.方向=xlTopToBottom
.SortMethod=xl拼音
.申请
以
范围(“A1”)。选择
ThisWorkbook.CheckCompatibility=False
此工作簿。保存
活动工作簿。保存
活动窗口,关闭
工作表(“PO”)。选择
范围(“J5”)。选择
工作表(“PO”)。选择
范围(“A1:J80”)。选择
ExecuteExcel4Macro“打印(1,,,,1,TRUE,,,,,,,1,,,TRUE,FALSE)”
工作表(“PO”)。选择
范围(“J5”)。选择
MsgBox str1$&Chr(13)和str2$&Chr(13)
ThisWorkbook.CheckCompatibility=False
工作表(“数据库”)。可见=真
工作表(“数据库”)。选择
保护
工作表(“数据库”)。可见=假
此工作簿。保存
活动工作簿。保存
活动工作簿。关闭
其他的
MsgBox“未处理请购单”_
vbInformation+vbOKOnly,“未处理”
如果结束
如果结束
端接头

这是脚本的一部分,我有t
Workbooks.Open Filename:= _
                "C:\Users\Jamsheer\Desktop\Macro_Excel\Benefit_Purch_Reqn\PO_Smmary.xlsx", _
                CorruptLoad:=xlrepair
            Sheets("Summary").Select
            Range("A1").Select
            NextRow = Range("A65536").End(xlUp).Row + 1
            Range("A" & NextRow).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
            Range("A1:V25000").Select
            Application.CutCopyMode = False
            ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A25000") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Sheet1").Sort
            .SetRange Range("A1:X25000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
            Range("A1").Select
            ThisWorkbook.CheckCompatibility = False
            ThisWorkbook.Save
            ActiveWorkbook.Save
            ActiveWindow.Close'