0
무시 : 나는 코드가 완벽하지만 일하고 생각 텍스트 복사는 아래 그림과 같이 내가 ADO를 사용하여 Excel로 텍스트 파일을 가져 오는 몇 가지 코드를 사용한 첫 번째 행
Sub ImportTextFile()
'Imports text file into Excel workbook using ADO.
'If the number of records exceeds 65536 then it splits it over more than one sheet.
Dim strFilePath As String, strFilename As String, strFullPath As String
Dim lngCounter As Long
Dim oConn As Object, oRS As Object, oFSObj As Object
'Get a text file name
strFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")
If strFullPath = "False" Then Exit Sub 'User pressed Cancel on the open file dialog
'This gives us a full path name e.g. C:\temp\folder\file.txt
'We need to split this into path and file name
Set oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
strFilePath = oFSObj.GetFile(strFullPath).ParentFolder.Path
strFilename = oFSObj.GetFile(strFullPath).Name
'Open an ADO connection to the folder specified
Set oConn = CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strFilePath & ";" & _
"Extended Properties=""text;HDR=Yes;FMT=Delimited"""
Set oRS = CreateObject("ADODB.RECORDSET")
'Now actually open the text file and import into Excel
oRS.Open "SELECT * FROM [" & strFilename & "]", oConn, 3, 1, 1
While Not oRS.EOF
Sheets("Sheet1").Select
ActiveSheet.Range("A1").CopyFromRecordset oRS, 65536
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("C1").Select
ActiveSheet.Paste
Range("E1").Select
ActiveSheet.Paste
.
.
.
Range("CW1").Select
ActiveSheet.Paste
Range("CY1").Select
ActiveSheet.Paste
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Recorder Log").Select
Range("A9").Select
ActiveSheet.Paste
Range("C8").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Range("C9").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("Recorder Log").Select
Range("C9").Select
Wend
oRS.Close
oConn.Close
End Sub
가져 오는 파일의 첫 번째 텍스트 줄이 Excel로 복사되지 않는다는 것을 알았습니다.
이 문제가 발생하는 이유는 무엇입니까? 처음에는 빈 행으로 텍스트 파일을 미리 형식화하지 않아도되는 해결책이 있습니까?
미리 감사드립니다. 당신은 연결 속성을 통해 설정 한
최초의 행에 원래 텍스트 파일에있는 내용 - 열 머리글이 있습니까? 아니면 열 머리글이 없습니다. ?? –
열 머리글이 없습니다. – CluelessVoid
그래서 이것을 변경해보십시오 : 코드에서'HDR = Yes'를'HDR = No'로 변경하십시오 ... –