通过Access 2013 VBA编辑后,无法打开Excel 2013文件

我正在一个Access数据库中,我有一个button,单击时,复制一个文件(模板excel文件),然后打开新副本,设置一些单元格的值, 然后保存并closures它 。 另一个button完全相同的事情,但后来调用另一个子打印新文件。

我遇到的问题是,我无法设法在Excel中打开这些编辑的文件。 他们通过访问VBA代码打印没有任何问题,这意味着它会被编辑,保存,然后打印。 但是,当我双击这些文件之一,Excel启动,但文件根本不打开。 没有桌子。 如果我已经在Excel中打开了一个文件,并右键单击其中一个文件并select打印,则先前的Excel表单将被打印。

这里是Acess VBA子版本,它复制模板,然后继续编辑副本:

Private Sub SaveXLFile(FileNameFull As String) 'FileNameFull: Complete path for file to be saved, including extension. Dim ExcelApp As Excel.Application Dim ExcelBook As Excel.Workbook Dim ExcelSheet As Excel.Worksheet Dim fso As Object 'copy template Set fso = VBA.CreateObject("Scripting.FileSystemObject") fso.CopyFile ThePath & "Arbetsorder - Blankett.xlsx", FileNameFull Set ExcelBook = GetObject(FileNameFull) Set ExcelApp = ExcelBook.Parent Set ExcelSheet = ExcelBook.Worksheets(1) 'we are open and ready for action! 'take values from form and put them in the correct places ExcelSheet.Range("C2").Value = [Kund] 'edit page 2 'Set ExcelSheet = ExcelBook.Worksheets(2) 'ExcelSheet.Range("B31").Value = [TB_Tid_Ställ] ExcelBook.Close savechanges:=True Set ExcelSheet = Nothing Set ExcelBook = Nothing Set ExcelApp = Nothing End Sub 

打印代码如下:

 Private Sub PrintXLFile(FileNameFull As String) 'opens an excel file and prints it. 'FileNameFull: Complete path to file, including extension. Dim ExcelApp As Excel.Application Dim ExcelBook As Excel.Workbook Dim ExcelSheet As Excel.Worksheet Set ExcelBook = GetObject(FileNameFull) Set ExcelApp = ExcelBook.Parent Set ExcelSheet = ExcelBook.Worksheets(1) ExcelSheet.PrintOut Copies:=1, Collate:=True ExcelBook.Sheets(2).PrintOut Copies:=1, Collate:=True ExcelBook.Close savechanges:=False 'close without changes Set ExcelSheet = Nothing Set ExcelBook = Nothing Set ExcelApp = Nothing End Sub 

…和实际的button点击子不以任何方式:

 Private Sub KnappPrint_Click() Dim NewFileNameWExt As String NewFileNameWExt = [I-Order] & ".xlsx" SaveXLFile (ThePath & "Arbetsordrar\" & NewFileNameWExt) PrintXLFile (ThePath & "Arbetsordrar\" & NewFileNameWExt) End Sub 

我究竟做错了什么? 我只试过编辑第一张纸,以防在切换纸张时出现错误,但这并没有解决问题。

更令人困惑的是,当KnappPrint_Click()运行时,它打印得很好,但是右键单击资源pipe理器中的文件并select“打印”不做任何事情。

您的工作表出现问题的原因是您如何打开工作簿。 尝试将您的Excel应用程序和工作簿分配更改为:

 Set ExcelApp = CreateObject("Excel.Application") Set ExcelBook = ExcelApp.Workbooks.Open(str) Set ExcelSheet = ExcelBook.Worksheets(1)