VBA Excel从Word表复制内容

我有一个Word文件,其中包含一个表,我要通过Word文件中的表格,并将其放入一个Excel文件

Example Word File: ----------------------------------- |Col Header 1 | Col Header 2 | ----------------------------------- |Content 1 | Content 2 line 1 | | | line 2 | ---------------------------------- 

当我尝试粘贴该内容或将其转移到Excel中时,它将删除新行并将内容粘贴在一起,或者如果我使用特殊粘贴,则会将第1行和第2行放入新行中。

这段代码将内容放在一起:

 Cells(x, y) = WorksheetFunction.Clean(wdDoc.tables(1).cell(6, 1).Range.Text) Result in excel: ---------------------------------------- |Col Header 1 | Col Header 2 | --------------------------------------- |Content 1 | Content 2 line 1line2 | ---------------------------------------- 

此代码将内容放在多行上

 wdDoc.tables(1).cell(6, 1).Range.Copy Sheet1.Cells(x, y).Select Sheet1.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False Result in excel: ---------------------------------------- |Col Header 1 | Col Header 2 | --------------------------------------- |Content 1 | Content 2 line 1 | ---------------------------------------- | | line2 | ---------------------------------------- 

我只关心新行,不一定关心格式化。 我会接受格式化,如果这是唯一的select,但我似乎无法find一种方法来让它甚至正确地传输内容。 我试图把它作为一个公式,不同的pastespecialtypes,没有运气。

非常感谢帮助

尝试用换行符replace所有的回车符。 Excel可以处理换行符,但正如你所看到的将回车放在一个单独的单元格上。

 Sub TextToExcel() Dim wdDoc As Document, wdTab As Table Dim ii As Integer, jj As Integer, kk As Integer Dim xlApp As Excel.Application Set wdTab = ActiveDocument.Tables(1) ReDim Data(1 To wdTab.Rows.Count, 1 To wdTab.Columns.Count) Set xlApp = GetObject(, "Excel.Application") With xlApp.ActiveSheet For ii = 1 To wdTab.Rows.Count For jj = 1 To wdTab.Columns.Count Data(ii, jj) = VBA.Replace(wdTab.Cell(ii, jj).Range.Text, vbCr, vbLf) Next jj Next ii 'Place the data With .Range(.Cells(1, 1), .Cells(wdTab.Rows.Count, wdTab.Rows.Count)) .Value = Data .WrapText = True End With End With Set xlApp = Nothing End Sub 

*请注意,我还没有在word文档中用换行符进行testing。