2012-08-24 2 views
3

다음은 현재 큰 문서를 회사 브랜딩에 맞게 다시 포맷하는 데 사용하는 매크로에서 발췌 한 것입니다. 나는 지금 세 열 테이블뿐만 아니라 두 개의 열 테이블과 내가 5.46 넓은 모든 열이 이러한 싶습니다 끝까지오고있다 얻을Word 매크로를 사용하여 세 개의 열 테이블 만 변경

Selection.Tables(1).Select 
    Selection.Columns(1).Width = CentimetersToPoints(5.46) 
    Selection.Columns(2).Width = CentimetersToPoints(10.92) 
    Selection.Rows.HeightRule = wdRowHeightAtLeast 
    Selection.Rows.Height = CentimetersToPoints(0.8) 

서류, 나는 고수하는 두 개의 열 테이블을 필요로하는 반면 모든 서식을 양호하게 유지하기 위해 위에서 지정한 폭.

"if, then"유형의 명령문에 3 개의 열이있는 경우 테이블에 2가 있으면이 작업을 수행하지만 2에서 3 열 테이블을 식별하는 방법을 알지 못합니다. 컬럼 테이블.

답변

5

EDIT : 열 너비가 고르지 않은 행을 처리하도록 업데이트되었습니다.

Dim tbl As Table 
Dim rw As Row 

Set tbl = ActiveDocument.Tables(1) 

For Each rw In tbl.Rows 
With rw 

    .Cells(1).Width = CentimetersToPoints(5.46) 

    If .Cells.Count = 2 Then 
     .Cells(2).Width = CentimetersToPoints(10.92) 
    ElseIf .Cells.Count = 3 Then 
     .Cells(2).Width = CentimetersToPoints(5.46) 
     .Cells(3).Width = CentimetersToPoints(5.46) 
    Else 
     'what do do if not 2 or 3? 
    End If 

    .HeightRule = wdRowHeightAtLeast 
    .Height = CentimetersToPoints(0.8) 
End With 
Next rw 
+1

그래서 실망 -이 대답은 내가 필요 정확히하지만 난 그것을 실행하면 테이블 셀의 폭을 혼합했기 때문에이 컬렉션에서 개별 열을 액세스 할 수 없습니다 :( – nicemanda

+0

을 내가 그 테이블이 있다고 말하고 생각 말한다 서로 다른 열 너비가 서로 다른 행에 있으므로 행을 반복하고 열 너비를 셀별로 설정해야 할 수도 있습니다. 큰 Word VBA 사용자가 아니기 때문에 지식의 한계에 가까워졌습니다. –

+0

@nicemanda :이 솔루션은 행렬 또는 열에 의해 모든면에서 동질성 인 테이블을 가지고있을 때만 작동합니다 테이블 내의 일부 셀이 병합되어 오류가 표시 될 수 있습니다 – Cylian

관련 문제