2016-07-29 1 views
0

내 Word 문서에서 다른 페이지에 여러 테이블이 있습니다. Macro to export MS Word tables to Excel sheets에서 찾은 샘플 코드로 이미 수행 된 Excel 내에서 표를 가져와야합니다.Excel로 Word 테이블의 VBA 가져 오기 페이지 번호

그러나 (Word에서) 표의 페이지 번호를 Excel로 가져 와서 시트 이름으로 설정하려고하지만 검색 시간이 지나면 인터넷에서 아무것도 찾을 수 없습니다.

Word에서 Word의 테이블 번호를 Excel로 가져 오는 방법은 무엇입니까?

나는 그것이 우리가 명령

Activesheet.Name="insert_page_number" 

을 사용하지만 어떻게 우리가 우리가 Excel로 말씀에서 가져온 테이블의 페이지 번호를 가져 않는 시트 이름으로 설정 해야할지?

+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' ... Then'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). 정보 (wdActiveEndPageNumber)를 의미할까요? – NewLearner