VBA for MS Access:在不打开的情况下写入excel文件,写入最后一行,保存并关闭

VBA for MS Access:在不打开的情况下写入excel文件,写入最后一行,保存并关闭,vba,excel,Vba,Excel,我是第一次在MS Access中使用VBA,无法正确执行以下操作: 启动一个excel文件(不实际打开该文件),然后写入excel文件中的最后一行,然后保存该文件(使用与以前相同的路径和名称,基本上替换上一个文件),然后关闭该excel文件 请协助!到目前为止,我可以写入excel文件,但在不关闭整个MS Access应用程序的情况下无法保存和关闭。 如果你能提供一个工作代码的样本来做上述工作,我会根据我的要求进行调整 谢谢! Christine首先,要想像你想的那样更新和保存一个文件,你必须先

我是第一次在MS Access中使用VBA,无法正确执行以下操作: 启动一个excel文件(不实际打开该文件),然后写入excel文件中的最后一行,然后保存该文件(使用与以前相同的路径和名称,基本上替换上一个文件),然后关闭该excel文件

请协助!到目前为止,我可以写入excel文件,但在不关闭整个MS Access应用程序的情况下无法保存和关闭。 如果你能提供一个工作代码的样本来做上述工作,我会根据我的要求进行调整

谢谢!
Christine

首先,要想像你想的那样更新和保存一个文件,你必须先打开它——所以当你说你不想“实际打开”一个excel文件时,这有点混乱/矛盾。。。我认为这意味着您不希望excel应用程序显示—您希望这样:

Public Sub demoCode()
Dim excelApp As Excel.Application
Dim targetWB As Workbook
Dim targetRange As Range

'Create new Excel Application
Set excelApp = New Excel.Application
'Keep hidden
excelApp.Visible = False

'Have new Excel App open workbook
Set targetWB = excelApp.Workbooks.Open("C:\Filename.xlsm")

'Set targetRange to 1 row past the first sheet's usedrange
Set targetRange = targetWB.Sheets(1).Range(targetWB.Sheets(1).UsedRange.address)(targetWB.Sheets(1).UsedRange.Rows.Count + 1, 1)

'Paste @ targetRange

'Close and save workbook
targetWB.Close (True)
'Close Excel App
excelApp.Quit
End Sub
希望这有帮助,
silkcode

请共享您打开并尝试保存文件的代码部分。另外,设置指向工作簿指针的部分也会很有帮助。使用Excel对象需要引用
Microsoft Excel XX.X对象库
是的,就像@gizlmo所说的,请确保包含任何必要的对象库。非常感谢!设置targetRange=excelApp.Range时出现错误“参数非可选”。知道这是什么吗?在哪条线上?Set-TargetRange不使用excelApp,请您澄清一下-