我正在尝试使用下面的代码
PrintWB具有以下值"C:\Users\jarora\Desktop\Master Test Sheet.xlsx"
PrintWB = .Cells(i, 1) & "\" & .Cells(i, 2)
Workbooks(PrintWB).Sheets(Sheetname).Printout From:=Frompage, To:=Topage
在引用Workbook对象时,上面的行给出了错误'Subscript out of range Error'。
引用Workbook对象时,上面一行出现以下错误:
下标超出范围错误
任何帮助都会受到极大的赞赏,因为这是我试图整理的最后一块拼图。
答案 0 :(得分:1)
您遇到的问题是您正在尝试打印Excel无法看到的工作簿。 Workbooks()
是所有开放工作簿的集合。
第1步是打开目标工作簿。在我们打开它之前,最好检查文件路径是否准确。一个简单的IF STATEMENT
就足够了:If Dir(yourfilepath) <> "" Then
步骤2是打开目标工作簿,打印目标工作表,然后关闭工作簿。我添加了行Workbooks(targetworkbook).Saved = True
。这将隐藏&#34;您要保存更改吗?&#34;我们尝试关闭工作簿时弹出的对话框。我们知道我们没有做任何更改,所以使用这种方法是安全的。
WBPath = .Cells(i, 1) & "\" & .Cells(i, 2)
PrintWB = .Cells(i,2) 'I'm assuming this is "Master Test Sheet.xlsx"
If Dir(WBPath) <> "" Then
Workbooks.Open (WBPath)
Workbooks(PrintWB).Sheets(Sheetname).PrintOut From:=1, To:=1
Workbooks(PrintWB).Saved = True
Workbooks(PrintWB).Close
Else: MsgBox "File not found.", vbCritical
End If