用文字解釋有點困難,但在這種情況下,代碼和螢屏截圖應該確實有幫助。我已經創建了這段簡單的代碼來重現這個問題。此代碼是在 Access 2013 中的 VBA 模塊中創建的。
它使用 4 個作業表創建兩個相等的 excel,一個是 acSpreadsheetTypeExcel9 / xls 格式,另一個是 acSpreadsheetTypeExcel12XML / xlsx。
Function TestExportExcel()
s = "\xxx\Desktop\temp\test.xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tblPLCselect", s, , "sheet 1"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tblPLCselect", s, , "sheet 2"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tblPLCselect", s, , "sheet 3"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tblPLCselect", s, , "sheet 4"
s = "\xxx\Desktop\temp\test.xlsx"
DoCmd.TransferSpreadsheet acExport, , "tblPLCselect", s, , "sheet 1"
DoCmd.TransferSpreadsheet acExport, , "tblPLCselect", s, , "sheet 2"
DoCmd.TransferSpreadsheet acExport, , "tblPLCselect", s, , "sheet 3"
DoCmd.TransferSpreadsheet acExport, , "tblPLCselect", s, , "sheet 4"
End Function
這里的功能問題是在第二個 (xlsx) 匯出中,所有作業表都被選中,與 xls 版本相反:

我只想在用戶打開作業表時選擇第一張作業表,但我也想以 acSpreadsheetTypeExcel12XML / xlsx 格式匯出。
有沒有有效的方法(此匯出必須經常運行)來操縱它?
uj5u.com熱心網友回復:
奇怪!是的,我有同樣的行為。我可以看到修復的唯一方法是使用 Excel 自動化。
Dim objExcel As Object, wb As Object
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open(s)
wb.Worksheets("sheet_2").Activate
wb.Worksheets("sheet_1").Activate
wb.Save
objExcel.Quit
Excel 將用下劃線字符替換作業表名稱中的空格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314251.html
