2009-05-12 4 views
0

그래서 MS Word 테이블에서 데이터를 가져와 Excel에서 조작해야했습니다. 나는 VBA 서브 루틴을 통해 "시간을 절약"이라는 단어를 얻으려고 결심했다. 원본 단어 문서가 twentysomething 테이블처럼 포함되어 있습니다.Word에서 Excel로 복사 할 테이블 만들기

원본 문서의 테이블을 가져 와서 내 데이터를 추출하고 새로운 테이블로 새 문서를 만들었습니다.이 테이블을 복사하여 Excel에 붙여 넣기 만하면됩니다.

그러나 복사하기 전에 최종 표가 잘 보입니다. Excel로 복사하면 전체 단락을 포함하는 셀이 개별 셀로 분리됩니다.

대부분의 Excel 사용자가 알고있는 것처럼, 솔루션이 Excel에서와 같이 보이지만 병합 및 가운데 정렬을 수행하더라도 선택 영역의 맨 위 셀에있는 내용 만 보존합니다!

더 나은 병합 및 센터 또는 더 나은 "시간 절약"에 대한 조언은 훌륭합니다.

여기에 지금까지 코드의 샘플입니다 :

Sub First() 

Dim tableLength, tableIndex 
tableLength = ThisDocument.Tables.Count 

Dim tblReport As Table 
Dim docReport As Document 

Set docReport = Documents.Add 
Set tblReport = docReport.Tables.Add(Selection.Range, 1, 2) 

With tblReport 

Dim fieldOne, subvalueAription, subvalueA, subvalueB, subvalueC 

For tableIndex = 1 To tableLength 

    fieldOne = ThisDocument.Tables(tableIndex).Rows(2).Cells(2).Range.Text 
    subvalueA = Trim(ThisDocument.Tables(tableIndex).Rows(4).Cells(2).Range.Text) 
    subvalueB = "A: " & Trim(ThisDocument.Tables(tableIndex).Rows(5).Cells(2).Range.Text) 
    subvalueC = "B: " & Trim(ThisDocument.Tables(tableIndex).Rows(6).Cells(2).Range.Text) 
    subvalueAription = subvalueA & subvalueB & subvalueC & "C: " 

    Dim rowNext As row 
    Set rowNext = .Rows.Add 
    rowNext.Cells(1).Range.Text = fieldOne 
    rowNext.Cells(2).Range.Text = subvalueA & subvalueB & subvalueC 


Next 

End With 


End Sub 
+0

그래서 나는 Excel에서 실제 테이블 생성을 수행함으로써이 문제를 해결했습니다. 건배! – Irwin

답변

0

엑셀 워드는 다른 줄 끝을 사용합니다. 여러 Excel 셀에서 Word 표의 텍스트가 분리되는 문제를 방지하려면 줄 종결 자 변환을 직접 처리해야합니다.

'Word > Excel 
newText = Replace(wordText, vbCrLf, vbLf) 

저는 이것을 메모리에 게시하고 있습니다.하지만 그 문제의 근원입니다.

관련 문제