Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA从Access创建多个Excel工作表不再有效_Excel_Vba_Ms Access - Fatal编程技术网

使用VBA从Access创建多个Excel工作表不再有效

使用VBA从Access创建多个Excel工作表不再有效,excel,vba,ms-access,Excel,Vba,Ms Access,我有一个Access VBA循环,它使用TransferSpreadsheet命令创建包含多个工作表的Excel电子表格。这已经奏效好几年了,但现在我只看到一份工作表。 它似乎创建了图纸,但覆盖了上一张,而不是添加另一张。 没有错误,代码可以运行,但当代码在格式化完成后激活电子表格时,只创建了最后一张工作表。 有什么想法吗?这是否是由于Microsoft更新导致的意外后果 有一个循环,每次创建工作表时运行的次数可变: r.MoveFirst ok = True Do While ok te

我有一个Access VBA循环,它使用TransferSpreadsheet命令创建包含多个工作表的Excel电子表格。这已经奏效好几年了,但现在我只看到一份工作表。 它似乎创建了图纸,但覆盖了上一张,而不是添加另一张。 没有错误,代码可以运行,但当代码在格式化完成后激活电子表格时,只创建了最后一张工作表。 有什么想法吗?这是否是由于Microsoft更新导致的意外后果

有一个循环,每次创建工作表时运行的次数可变:

r.MoveFirst
ok = True
Do While ok
   tempMth = r!mth
   tempyr = r!yr
   strSQL = "SELECT * FROM BkgsSummarySS WHERE mth = '" & tempMth & "' AND yr = '" & tempyr & "'"
   Set qdf = db.QueryDefs(strTemp)
   qdf.SQL = strSQL
   qdf.Close
   Set qdf = Nothing

   DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, strTemp, SpLocation, True, strTemp
   DoCmd.RunSQL ("UPDATE bkgsSummarySS SET [party date] = #01/01/2000# WHERE mth = '" & tempMth & "' AND yr = '" & tempyr & "'")
   Set r = db.OpenRecordset("SELECT * FROM bkgsSummarySS ORDER BY [Party Date] DESC")
   r.MoveFirst
   If r![party date] = #1/1/2000# Then ok = False
Loop
r.Close
db.QueryDefs.Delete strTemp
Set objApp = CreateObject("Excel.Application")
objApp.UserControl = True
objApp.workbooks.Open (SpLocation)
然后有许多格式化行,它们都仍然有效,后面跟着:
objApp.Visible=True


我敢肯定问题出在Excel端。我如何告诉它在每次执行TransferSpreadsheet命令时添加工作表?它在几周前才这样做?

如果没有代码,我们知道什么?至少出于诊断目的,请查看导出到当前Excel格式是否有任何不同的工作方式。Excel8将对应于Office_97时代的Excel版本,因此可能是Windows/Office更新破坏了一些可能永远无法修复的东西。