Excel 시트에서 데이터를 읽고 처리하는 매크로를 작성하는 데 Excel vba를 사용하고 있습니다. 기본적으로 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가 들어있는 필드 일뿐입니다. 난 그냥 수동으로 비슷한 데이터와 워크 시트를 만들었고 그것은 잘 작동 그래서 그것은 실제 데이터 세트와 함께 할 수 있지만 뭔가 확실하지 않을 수 있습니다. –