Excel의 열에 대한 텍스트 파일 행 머리글

다음 내용이 포함 된 텍스트 파일 :

userId=10101
givenname=Mark
orclmaidenname=Visser
[email protected]

userID=10102
givenname=Jan
orclmaidenname=Klaassen

userID=10104
givenname=Jessica
orclmaidenname=Host
[email protected]

등등.

이 txt 파일을 텍스트 파일의 행 머리글이 열 머리글이되고 Excel 시트의 행이 텍스트 파일의 해당 값으로 채워지는 Excel 워크 시트로 어떻게 변환합니까?

txt 파일에 1000 개가 넘는 항목이 있지만 모든 항목에 동일한 행 머리글이있는 것은 아닙니다 (예 : 일부 항목에 "메일"이 없음).

이것이 제가 지금까지 가지고있는 것입니다. "uid", "givenname", "orclmaidenname"을 올바르게 가져옵니다. 그러나 "메일"을 추가하면 예기치 않은 결과가 발생합니다. 모든 항목에 "mail"이라는 행 머리글이 포함되어 있지 않기 때문이라고 생각합니다.

Sub Frank()

    Application.ScreenUpdating = False

'   Name current file
    MyMacroFile = ActiveWorkbook.Name
'   Prompt for file
    MyFile = Application.GetOpenFilename("All Files,*.*")
    If MyFile = False Then
        Exit Sub
    End If

'   Open file
    Workbooks.OpenText Filename:=MyFile, Origin:=xlWindows, StartRow:=1, _
        DataType:=xlFixedWidth, FieldInfo:=Array(0, 2)
'   Name text file
    MyTextFile = ActiveWorkbook.Name

'   Find cell with "uid", "givenname", "orclmaidenname"
    Do
        Windows(MyTextFile).Activate
'       Exit loop if can't find any matches
        On Error GoTo Err_Fix
            Cells.Find(What:="uid=", After:=ActiveCell, LookIn _
        :=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
        xlNext, MatchCase:=False).Activate
            Cells.Find(What:="givenname=", After:=ActiveCell, LookIn _
        :=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
        xlNext, MatchCase:=False).Activate
            Cells.Find(What:="orclmaidenname=", After:=ActiveCell, LookIn _
        :=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
        xlNext, MatchCase:=False).Activate
        On Error GoTo 0
'   Exit loop if starting search over form top
        If ActiveCell.Row <= MyRow Then
            Exit Do
        End If
'   Get specific characters of selected rows
        MyValue = Right(ActiveCell.Value, 6)
        MyValue2 = Right(ActiveCell.Value, Len(ActiveCell.Value) - 10)
        MyValue3 = Right(ActiveCell.Value, Len(ActiveCell.Value) - 15)
        MyRow = ActiveCell.Row
'   Paste value in spreadsheet with macro in columns A, B and C
        Windows(MyMacroFile).Activate
        Range("A65536").End(xlUp).Offset(1, 0) = MyValue
        Range("B65536").End(xlUp).Offset(1, 0) = MyValue2
        Range("C65536").End(xlUp).Offset(1, 0) = MyValue3
    Loop

Err_Fix:
    Windows(MyTextFile).Activate
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
    Exit Sub

End Sub

통찰력이 있습니까?

J_ 라드

죄송합니다. 이것은 귀하의 코드와 일치하지 않지만 VBA를 사용하여 텍스트 파일을 읽지 않았으므로 여기서 스스로 가르치고있었습니다. 이 코드는 test.txt제공된 텍스트에서 복사 한 파일을 읽습니다 . 처음 세 개의 필드가 채워져있는 한 오류가 발생해서는 안되지만 누락 된 mail필드는 문제가되지 않습니다. 이 코드 =는 첫 번째 행 뒤의 모든 행에 대해 다음 항목을 취하고 빈 행 뒤의 새 행으로 이동하는 방식으로 작동합니다.

Option Explicit

Sub test()
    Dim fname As String
    Dim txt As String
    Dim rowID As Long
    Dim colID As Long
    Dim pos As Integer

    fname = "H:\test.txt"
    Open fname For Input As #1

    rowID = 1
    colID = 1

    Do Until EOF(1)
        Line Input #1, txt
        If rowID = 1 And txt <> "" Then
            pos = InStr(1, txt, "=")
            Cells(rowID, colID).Value = Left(txt, pos - 1) 'Populate the field names
            Cells(rowID + 1, colID).Value = Right(txt, Len(txt) - pos) 'Populate the second row (first row of data) 
            colID = colID + 1
        ElseIf txt = "" Then
            If rowID = 1 Then rowID = rowID + 1 'Increase the rowID by 1 since we have already populated the first row of data.
            colID = 1     'Set the colID back to 1 for the new row
            rowID = rowID + 1   'Move to a new row
        Else
            pos = InStr(1, txt, "=")
            Cells(rowID, colID).Value = Right(txt, Len(txt) - pos)  'Print out everything after the "=" to the cell
            colID = colID + 1    'Move to new column
        End If
    Loop

    Close #1

End Sub

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Vim의 일반 텍스트 문서에 대한 글 머리 기호 목록

분류에서Dev

테이블의 특정 셀에 대한 행 머리글 및 열 머리글

분류에서Dev

Excel 파일의 머리글 및 바닥 글 텍스트 교체

분류에서Dev

Excel 파일의 머리글 및 바닥 글 텍스트 교체

분류에서Dev

글 머리 기호 목록의 목록 항목에 대한 글 머리 기호 스타일 변경

분류에서Dev

블록의 열에 대한 텍스트 처리 행

분류에서Dev

유닉스의 텍스트 파일 내 각 행에 대한 디렉토리 구조 만들기

분류에서Dev

Python, 열의 특정 문자열에 대한 Excel 시트 검색 및 해당 행을 텍스트 파일로 추출

분류에서Dev

한 파일에서 다른 파일로 텍스트를 복사 한 다음 텍스트 문자열의 첫 글자를 대문자로 바꾸는 방법

분류에서Dev

mySQL 쿼리 (cmd)로 텍스트 파일의 한 줄씩 실행

분류에서Dev

행렬에서 간단한 텍스트 파일로의 Python

분류에서Dev

사용자 정의 표 스타일의 머리글 행에서 텍스트 단락 앞의 공백을 제거하려면 어떻게해야합니까?

분류에서Dev

WPF Datagrid Header ToolTip은 열 머리글 텍스트와 동일한 텍스트를 표시합니다.

분류에서Dev

텍스트 파일에 대한 작업을 동시에 수행 한 후 텍스트 파일의 특정 줄을 삭제하는 방법

분류에서Dev

모든 x 행에 대한 텍스트 파일 분할

분류에서Dev

UI 그리드의 확장 가능한 행에서 열 머리글 제거

분류에서Dev

여러 디렉토리의 텍스트 파일에 대한 grep 명령

분류에서Dev

배경색이있는 굵은 텍스트 스타일의 Excel 행에 대한 Java 코드

분류에서Dev

행 머리글이있는 연관 배열에 대한 PHP CSV

분류에서Dev

Excel 파일 입력 프롬프트에 대한 텍스트

분류에서Dev

텍스트 파일의 행에서 열 수의 빈도 인쇄

분류에서Dev

Excel에서 동일한 행의 텍스트에 해당하는 값에 대해 여러 파일을 검색하는 방법은 무엇입니까?

분류에서Dev

하나의 특정 목록에 대한 UL 글 머리 기호 스타일 재정의

분류에서Dev

동일한 수의 열을 가진 많은 data.frame에 대한 퍼지 일치 열 머리글?

분류에서Dev

리버스 텍스트 인 리소스의 텍스트 파일에서 코드 실행-vb.net

분류에서Dev

리버스 텍스트 인 리소스의 텍스트 파일에서 코드 실행-vb.net

분류에서Dev

텍스트 파일의 각 열에있는 행 수 계산

분류에서Dev

자산의 텍스트 파일에서 배열로 행 읽기

분류에서Dev

Access 2010으로 가져올 때 구분 된 텍스트 파일의 두 번째 행을 머리글 행으로 사용합니다.

Related 관련 기사

  1. 1

    Vim의 일반 텍스트 문서에 대한 글 머리 기호 목록

  2. 2

    테이블의 특정 셀에 대한 행 머리글 및 열 머리글

  3. 3

    Excel 파일의 머리글 및 바닥 글 텍스트 교체

  4. 4

    Excel 파일의 머리글 및 바닥 글 텍스트 교체

  5. 5

    글 머리 기호 목록의 목록 항목에 대한 글 머리 기호 스타일 변경

  6. 6

    블록의 열에 대한 텍스트 처리 행

  7. 7

    유닉스의 텍스트 파일 내 각 행에 대한 디렉토리 구조 만들기

  8. 8

    Python, 열의 특정 문자열에 대한 Excel 시트 검색 및 해당 행을 텍스트 파일로 추출

  9. 9

    한 파일에서 다른 파일로 텍스트를 복사 한 다음 텍스트 문자열의 첫 글자를 대문자로 바꾸는 방법

  10. 10

    mySQL 쿼리 (cmd)로 텍스트 파일의 한 줄씩 실행

  11. 11

    행렬에서 간단한 텍스트 파일로의 Python

  12. 12

    사용자 정의 표 스타일의 머리글 행에서 텍스트 단락 앞의 공백을 제거하려면 어떻게해야합니까?

  13. 13

    WPF Datagrid Header ToolTip은 열 머리글 텍스트와 동일한 텍스트를 표시합니다.

  14. 14

    텍스트 파일에 대한 작업을 동시에 수행 한 후 텍스트 파일의 특정 줄을 삭제하는 방법

  15. 15

    모든 x 행에 대한 텍스트 파일 분할

  16. 16

    UI 그리드의 확장 가능한 행에서 열 머리글 제거

  17. 17

    여러 디렉토리의 텍스트 파일에 대한 grep 명령

  18. 18

    배경색이있는 굵은 텍스트 스타일의 Excel 행에 대한 Java 코드

  19. 19

    행 머리글이있는 연관 배열에 대한 PHP CSV

  20. 20

    Excel 파일 입력 프롬프트에 대한 텍스트

  21. 21

    텍스트 파일의 행에서 열 수의 빈도 인쇄

  22. 22

    Excel에서 동일한 행의 텍스트에 해당하는 값에 대해 여러 파일을 검색하는 방법은 무엇입니까?

  23. 23

    하나의 특정 목록에 대한 UL 글 머리 기호 스타일 재정의

  24. 24

    동일한 수의 열을 가진 많은 data.frame에 대한 퍼지 일치 열 머리글?

  25. 25

    리버스 텍스트 인 리소스의 텍스트 파일에서 코드 실행-vb.net

  26. 26

    리버스 텍스트 인 리소스의 텍스트 파일에서 코드 실행-vb.net

  27. 27

    텍스트 파일의 각 열에있는 행 수 계산

  28. 28

    자산의 텍스트 파일에서 배열로 행 읽기

  29. 29

    Access 2010으로 가져올 때 구분 된 텍스트 파일의 두 번째 행을 머리글 행으로 사용합니다.

뜨겁다태그

보관