VBA工作簿对象给出“下标超出范围错误”

我试图使用下面的代码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 

上面的行给我错误'下标超出范围错误'引用工作簿对象时。

引用工作簿对象时,上面的行中出现以下错误:

下标超出范围错误

任何帮助将非常感激,因为这是我想拼凑在一起的最后一块拼图。

您遇到的问题是您正在尝试打印Excel无法看到的工作簿。 Workbooks()是所有打开的工作簿的集合。

第一步是打开目标工作簿。 在我们打开它之前,最好检查文件path是否正确。 一个简单的IF STATEMENT就足够了: If Dir(yourfilepath) <> "" Then

步骤2是打开目标工作簿,打印目标工作表,然后closures工作簿。 我添加了行Workbooks(targetworkbook).Saved = True 。 这将隐藏“你想保存你的更改吗?” 当我们尝试closures工作簿时popup对话框。 我们知道我们没有做任何改变,所以使用这种方法是安全的。

 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 
Interesting Posts