2016-07-29 5 views
0

私のWord文書では、私は別のページにある複数のテーブルを持っています。 私はMacro to export MS Word tables to Excel sheetsから見つけたサンプルコードで既に行われているExcel内のテーブルをインポートする必要があります。VBA ExcelにWordテーブルのページ番号をインポート

しかし、私はExcelにテーブルのページ番号をインポートしてシート名として設定しようとしていますが、何時間も検索しても何もインターネットで見つけられません。

Wordのテーブルのページ番号をExcelにインポートするにはどうすればよいですか?

私たちは、コマンドに

Activesheet.Name="insert_page_number" 

を使用しますが、どのように我々は我々がExcelにWordからインポートしたテーブルのページ番号をインポートするシート名として設定することを知っていますか?

+0

これは役立つかもしれない:[ 'Selection.Information(wdActiveEndPageNumber)'](https://msdn.microsoft.com/en-us/library /office/ff820800.aspx)ここで 'Selection'はテーブルの式です。 –

+0

@ScottHoltzmanはWordでのみ動作します。そのデータをExcelにどのように転送できますか?どのように私と共有することができますか?ありがとうございました:) – NewLearner

+0

wordからテーブルをつかむときにページ番号を変数に代入し、その変数を '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

これは問題ありませんが、テーブルの最初の行がページをまたいだ場合、 'paragraphs'プロパティは' wdActiveEndPageNumber'がそのページになることを意味します*パラグラフ*は終了します。 '.Range.Characters(1).Information(wdActiveEndPageNumber)'を実行する方が良いでしょう。これはテーブルにある最初の文字のページ番号を返します。 –

+0

@AndrewWynnは、pageNumber = .Range.Paragraphs(1).Range.Characters(1).Information(wdActiveEndPageNumber)またはそのpageNumber = .Range.Characters(1).Information(wdActiveEndPageNumber)を意味しますか? – NewLearner

関連する問題