2017-12-05 1 views
0

나는 수백 개의 단어 문서를 Excel로 옮겨야합니다. 문서는 다시 길에서 클라이언트의 기록이며, 그들은 다음과 같이 :Word 문서를 Excel로 자동화

날짜 : 일/월/년

직원 이름 : 한 단락에서 텍스트의

여러 줄의 이름을 지정합니다.

이렇게 한 페이지에 수십 개의 엔트리가 있으며 한 열로 형식이 지정됩니다. 최종 결과가 각 카테고리에 대해 하나의 열이어야합니다. 이 문제의 주요 문제점은 텍스트 설명입니다. 단어로 서식을 지정하는 방식으로 단락의 각 줄마다 하나의 셀을 생성하지 않고 Excel로 복사하여 붙여 넣는 간단한 방법이없는 것처럼 보입니다. 소프트 리턴에 대한 하드 리턴을 대체하는 모든 메소드는 전체 페이지의 모든 텍스트를 가져와 하나의 셀에 넣습니다. 그러면 더 나쁜 것으로 나타납니다. 전송할 파일이 수백 가지이므로 각 노트를 복사하여 하나의 셀에 붙여 넣을 시간이 없습니다. 단락의 길이는 일정하지 않지만, 일반적으로 노트 시작/종료 전후에 빈 줄이 있습니다. 이 문제에 대한 VB 솔루션이 있어야 할 것이라고 확신하지만, 알아낼만큼 충분히 지식이 없습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

VBA 또는 VBA 변형이 아닌 VB.NET을 사용 하시겠습니까? – Plutonix

+0

죄송합니다, VBA는 내가 의미했던 것입니다. –

+0

비슷한 게시물보기 : [Outlook을 Excel로 내보내기] (https://stackoverflow.com/questions/47565325/exporting-range-paragraph-of-text-from-outlook-email-to-excel/47566250#47566250) – GMan80013

답변

0

Word에서 책갈피를 설정하고 모든 책갈피를 Excel의 범위로 가져올 수 있습니다.

Sub TryThis() 
Dim oWord As Word.Application 
Dim oDoc As Word.document 
Dim vBkMarks As Variant 
Dim vRecord 
Dim rRecord As Range 
Dim nFields As Long 
Dim i As Long 

vBkMarks = Array("Bookmark1", "Bookmark2", "Bookmark3") 'etc... 
ReDim vRecord(LBound(vBkMarks) To UBound(vBkMarks)) 
nFields = UBound(vBkMarks) - LBound(vBkMarks) + 1 
On Error Resume Next 
Set oWord = GetObject(, "Word.Application") 
On Error GoTo 0 
If oWord Is Nothing Then _ 
Set oWord = CreateObject("Word.Application") 
Set oDoc = oWord.ActiveDocument 
For i = LBound(vBkMarks) To UBound(vBkMarks) 
vRecord(i) = oDoc.Bookmarks(vBkMarks(i)).Range.Text 
Next i 
With Sheets("DataTable") 
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(_ 
1, nFields).Value = vRecord 
End With 
End Sub