【问题标题】:Creating tables for copy from Word to Excel创建用于从 Word 复制到 Excel 的表格
【发布时间】:2009-05-12 19:37:27
【问题描述】:

所以,我需要在 MS Word 表格中完成一些数据,然后在 excel 中进行操作。 我决定通过 VBA 子程序从 word 到 excel 来“节省时间”。 我的源 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

【问题讨论】:

  • 所以我通过在 excel 中创建实际的表来解决它。干杯!

标签: excel vba merge ms-word


【解决方案1】:

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

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

我是凭记忆发布的,但这就是问题的根源。

【讨论】:

    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多