【问题标题】:VBA Word change all borders if every cell in a table如果表格中的每个单元格,VBA Word 会更改所有边框
【发布时间】:2015-11-19 22:48:27
【问题描述】:

我需要一遍又一遍地创建同一个表,所以我想使用 VBA 宏创建一个表。

到目前为止,我已经成功地创建了表格并更改了单元格的宽度。 现在我想将表格中的每个边框都设置为 wdLineStyleNone。

我怎么能做到这一点。

这是我到目前为止所做的代码。

Sub tabel_maken()
'
' tabel_maken Macro
'
'
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _
        2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
        If .Style <> "Tabelraster" Then
            .Style = "Tabelraster"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
        .ApplyStyleRowBands = True
        .ApplyStyleColumnBands = False
    End With
    Selection.Tables(1).Rows.SetLeftIndent LeftIndent:=3.75, RulerStyle:= _
        wdAdjustNone
    Selection.Tables(1).Columns(1).SetWidth ColumnWidth:=63.8, RulerStyle:= _
        wdAdjustNone
    Selection.Tables(1).Columns(2).SetWidth ColumnWidth:=297.7, RulerStyle:= _
        wdAdjustNone
    Selection.Tables(1).Range.Select
    Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderRight).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
    Selection.Cells.Borders(wdBorderLeft) = wdLineStyleNone


End Sub

我想我正在寻找改变表格内边框的东西。

当我离开Selections.Tables(1).Range.Select 时,只选择了第一个单元格。 当我保留此代码时,将选择表格的外边框。

最后我尝试选择所有单元格并以这种方式更改边框,但这也不起作用。 Selection.Cells.Borders(wdBorderLeft) = wdLineStyleNone)

我希望有人可以帮助我解决这个问题。

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    只需检查以下几行即可满足您的要求

     Set myTable = ActiveDocument.Tables(1)
        With myTable.Borders
    
    ' Inner lines
    
        .InsideLineStyle = wdLineStyleNone
    
    ' Outer lines
         .OutsideLineStyle = wdLineStyleNone
        End With
    

    【讨论】:

    • 我把ActiveDocument.Tables(1)改成Selection.Tables(1)然后就成功了。
    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    相关资源
    最近更新 更多