2016-07-29 118 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