我正在使用excel vba編寫一個宏,該宏從Excel工作表讀取數據並對其進行處理。基本上,我正在將Excel工作簿A
中的數據複製到Excel工作簿B
中的工作表X
中。工作簿B
包含一個宏,它執行此複製,然後將數據從工作表X
中讀取到記錄集中。Excel表單中的非空字段在記錄集中顯示爲空白
我遇到了一個真正奇怪的問題。我的問題是記錄集中有一個字段在我嘗試打印記錄集值時顯示爲空白。
這是我的代碼中有問題的部分。將packageName
傳遞給包含字符串的此函數。記錄集對象objRecordset
錯誤地取回Name
字段,並在我嘗試打印該項目的記錄集值時顯示爲空白,即使該項目不爲空。其他領域打印出來很好。名稱字段包含字母和數字,如ABC1232WHSJ, ABCD3456
。任何想法出了什麼問題?
Dim objConnect As ADODB.Connection, objRecordset
Set objConnect = New ADODB.Connection
objConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1
Set objRecordset = CreateObject("ADODB.Recordset")
objRecordset.Open "Select * FROM [Sheet1$] WHERE Package LIKE '" & _
packageName & "'", objConnect, adOpenStatic, adLockOptimistic, adCmdText
Debug.Print objRecordset.Fields.Item("Package")
Debug.Print objRecordset.Fields.Item("Name")
爲我工作。很難真正測試沒有你的實際數據集。 –
1)看看源列是否有任何奇特的格式(如「文本」).... 2)「名稱」字段可能會被誤解爲單元格地址? – MikeD
感謝您的建議傢伙。任何想法是否與連接字符串中的「擴展屬性」有關?另外,如何確保名稱不會被誤解爲單元格地址?源代碼沒有花哨的格式。它只是一個包含csv的字段。我只是手動創建了一個具有類似數據的工作表,它工作正常,所以我認爲它可能與實際數據集有關,但不知道是什麼。 –