我正在用一個名爲「Go」的按鈕構建一個表單,以從Excel文件中導入特定Excel表格的特定範圍。另一個子/函數負責在名爲text_filepathdata的字段中創建表單上的文件名。MS Access VBA acImport工作表名稱空格和範圍
我發現表格名稱中的空格有問題,但可以通過使用特殊引號來解決。 。
Dim sheetname As String
sheetname = "'Commit Volumes!'"
DoCmd.Transferspreadsheet acImport, acSpreadsheetTypeExcel12, _
"lcl_ImportedFile", text_filepathdata, True, sheetname
這一工程,但我不能在除指定範圍內工作表名稱,因爲特殊的報價...(即「‘提交卷A6:Z5000’」不工作,同樣沒有兩片像「‘提交卷’」 &的串聯「A6:Z5000」)
我試過報價和級聯的所有方式,但這項工作是唯一的東西:
sheetname = "'Commit Volumes!'"
sheetname = "'Commit Volumes$'"
sheetname = "CommitVolumes!A6:Z5000"
Excel工作表無法修改,因爲它來自另一個系統和文件(尾部呃被更新)必須上傳回該系統。
這裏是我的代碼:
Private Sub button_Go_Click()
On Error GoTo Err_button_Go_Click
Dim sheetname As String
sheetname = "'Commit Volumes!'"
If IsNull(text_filepathdata) Or text_filepathdata = "" Then
MsgBox "Please browse and select a valid file to import.", _
vbCritical, "Invalid File"
Else
DoCmd.OpenForm "f_PleaseWait_Processing", acNormal, , , acFormReadOnly, acWindowNormal
If ifTableExists("lcl_ImportedFile") = True Then
DoCmd.DeleteObject acTable, "lcl_ImportedFile"
End If
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12,_
"lcl_ImportedFile", text_filepathdata, True, sheetname
'Call module to process the imported data
Call MainProcess
End If
Exit_button_Go_Click:
Exit Sub
Err_button_Go_Click:
MsgBox Err.Number & " - " & Err.Description
Resume Exit_button_Go_Click
End Sub
我得到兩個不同的錯誤信息取決於問題。
如果我得到的名稱中有空格:運行時錯誤3129:無效的SQL語句;預期'DELETE','INSERT','PROCEDURE','SELECT'或'UPDATE'。
如果名稱存在問題,則我得到:運行時錯誤3011:Microsoft Access數據庫引擎找不到對象「提交卷$ A1:Z5000」。確保對象存在,並且正確拼寫其名稱和路徑。如果「提交卷$ A1:Z5000」不是本地對象,請檢查您的網絡連接或聯繫服務器管理員。
任何幫助將不勝感激!
比爾
變化我已經試過:
sheetname = "'Commit Volumes'!A6:Z5000";
sheetname = "'Commit Volumes!'A6:Z5000"
sheetname = "'Commit Volumes$'A6:Z5000"
sheetname = "'Commit Volumes'$A6:Z5000"
sheetname = "'Commit Volumes'$A$6:$Z$5000"
sheetname = "'Commit Volumes!'$A$6:$Z$5000"
sheetname = "'Commit Volumes$'$A$6:$Z$5000"
嗨斯科特!我嘗試了你建議的代碼...我仍然收到相同的錯誤消息。該錯誤消息沒有返回我在代碼中鍵入的內容,但是... message說:Microsoft Access數據庫引擎找不到對象「Commit Volumes'$ A6:AQ5000'。確保...等等。對象是「'Commit Volumes'!'A6:AQ5000」就像我在代碼中一樣。奇怪,呃?它必須解釋我把代碼放在不同的地方?或者別的什麼? –
一位程序員剛剛建議嘗試像這樣的多個變量: '昏暗SHEETNAME作爲字符串 暗淡cellrange作爲字符串 暗淡sheetrange作爲字符串 SHEETNAME = 「 '!提交卷'」 cellrange = 「A6:Z5000」 sheetrange = SHEETNAME&cellrange' 似乎很有希望,但沒有然而,工作。:( 原諒我,但我不能戈t代碼出現在多行上。 –
在黑暗中拍攝,但如果您在表格名稱周圍嘗試使用括號'[]'而不是''' –