2009-05-12 5 views
0

Итак, мне нужно было сделать некоторые данные в таблицах MS Word и управлять ими в excel. Я решил получить это от слова, чтобы преуспеть через подпрограмму VBA, чтобы «сэкономить время». Документ с исходным текстом, содержащий таблицы twentysomething.Создание таблиц для копирования из Word в 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, вам необходимо самостоятельно обрабатывать преобразование терминатора линии.

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

Я размещаю это по памяти, но это корень этой проблемы.

Смежные вопросы