【发布时间】:2015-07-20 15:29:50
【问题描述】:
我需要将包含大量表格的 Word 文档导入 Excel 工作表。这很容易,但需要注意的是在输入 excel 时保持 word doc 的格式。例如,word 中的一些字段是蓝色的,有些是红色的。有些是带下划线的蓝色,有些是带下划线的红色。基本上,word doc 中的任何颜色都需要在 excel 表中匹配。这是我进行实际导入的代码。
Sub ImportWordTables_1()
Dim wdDoc As Object
Dim wdFileName As Variant
Dim TableNo As Long 'table number in Word
Dim iRow As Long 'row index in Excel
Dim iCol As Long 'column index in Excel
Dim tblCount As Long
wdFileName = Application.GetOpenFilename("Word files,*.doc;*.docx", , _
"Browse for file containing table to be imported")
If wdFileName = False Then Exit Sub '(user cancelled import file browser)
Set wdDoc = GetObject(wdFileName) 'open Word file
With wdDoc
TableNo = wdDoc.tables.Count
If TableNo = 0 Then
MsgBox "This document contains no tables", vbExclamation, "Import Word Table"
End If
tblStart = InputBox("Enter table number to start with", "Table Start")
iCol = 1
For tblCount = tblStart To .tables.Count
With .tables(tblCount)
'copy cell contents from Word table cells to Excel cells
For iRow = 1 To .Rows.Count
'find the last empty row in the current worksheet
nextRow = ThisWorkbook.ActiveSheet.Range("a" _
& Rows.Count).End(xlUp).Row + 1
'Just 1 column for now
'For iCol = 1 To .Columns.Count
ThisWorkbook.ActiveSheet.Cells(nextRow, iCol) = WorksheetFunction _
.Clean(.cell(iRow, iCol).Range.Text)
'ThisWorkbook.ActiveSheet.Cells(nextRow, iCol) = _
.cell(iRow, iCol).Range.Text
'Next iCol
Next iRow
End With
Next
End With
Set wdDoc = Nothing
End Sub
【问题讨论】:
-
您的代码可以正常传输,但没有保留格式,对吗?
-
我不太确定如何修改我的代码以适应链接中的示例。我只想要单词表的第一列。