创建表以便从Word复制到Excel

时间:2009-05-12 19:37:28

标签: excel vba merge ms-word

因此,我需要在MS Word表格中完成一些数据,并在excel中进行操作。 我决定通过VBA子程序将它从单词转到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

1 个答案:

答案 0 :(得分:0)

Excel使用与Word不同的行终止符。为了避免Word表格中的文本被拆分为多个Excel单元格的问题,您需要自己处理行终止符转换。

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

我是通过记忆发布的,但那是问题的根源。