2016-07-29 70 views
0

在我的Word文档中,我有多个表格,它们位于不同的页面中。 我需要在Excel中导入表格,该表格已经用我从Macro to export MS Word tables to Excel sheets找到的示例代码完成。VBA将Word表格的页码导入Excel中

但是,我打算将表格的页码(在Word中)导入到Excel中,并将其设置为工作表名称,但经过数小时的搜索后,我无法在Internet中找到任何内容。

如何将Word中表格的页码导入到Excel中?

我知道,将其设置为工作表名称,我们使用命令

Activesheet.Name="insert_page_number" 

但是我们如何导入我们从Word导入到Excel表格的页码?

+0

这可能会帮助:['Selection.Information(wdActiveEndPageNumber)'](https://msdn.microsoft.com/en-us/library /office/ff820800.aspx)其中'Selection'是表格的表达式。 –

+0

@ScottHoltzman只适用于Word。那将如何将这些数据转移到Excel中?你能跟我分享一下吗?谢谢:) – NewLearner

+0

当从单词中获取表格时,将页码赋给变量,然后将该变量传递给'ActiveSheet.Name'。例如'With .tables(TableNo)| lPage = .Information(wdActiveEndPageNumber)..'(bar等于换行符和“Dim lPage as Long”...然后'ActiveSheet.Name = lPage' –

回答

2

您可以使用Range.Information(wdActiveEndPageNumber)来阅读页码。在您链接到的样本,这将如下所示:

Dim pageNumber as Integer 
Dim wdRange as Range 
With .tables(TableNo) 
    'copy cell contents from Word table cells to Excel cells 
    For iRow = 1 To .Rows.Count 
     For iCol = 1 To .Columns.Count 
      Cells(iRow, iCol) = WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text) 
     Next iCol 
    Next iRow 

    ' get the page number of the first paragraph in the table 
    pageNumber = .Range.Paragraphs(1).Range.Information(wdActiveEndPageNumber) 

    ' write the page number below the table 
    Cells(iRow + 1, 1) = "Page " & pageNumber 
End With 
+0

嗨@Dirk当我试图编译代码时,它向我展示了变量未定义到wdActiveEndPageNumber时的错误,这是因为该属性只存在于Word中,而不是在Excel中。如何解决这个问题?谢谢你的帮助!:) – NewLearner

+1

这很好,但如果表的第一行打破了页面,'paragraph'属性意味着'wdActiveEndPageNumber'将是页面*段*结束。最好做'.Range.Characters(1).Information(wdActiveEndPageNumber)',因为这将返回表中第一个字符的页码。 –

+0

@AndrewWynn这是否意味着pageNumber = .Range.Paragraphs(1).Range.Characters(1).Information(wdActiveEndPageNumber)或那pageNumber = .Range.Characters(1).Information(wdActiveEndPageNumber)? – NewLearner

相关问题