风-fmgao

导航

word_宏示例

参考:https://jingyan.baidu.com/article/870c6fc3326588b03fe4beeb.html

内容自适应

Application.Browser.Target = wdBrowseTable

  For i = 1 To ActiveDocument.Tables.Count

  ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitContent) '根据内容自动调整表格

  ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitWindow) '根据窗口自动调整表格

  ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '水平居中

  ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdCellAlignVerticalCenter '垂直居中

  Next i

表格修改(清除表格内容)

Sub www()
'
' www 宏
'
'
   Dim oDoc As Document
   Dim oTable As Table
   Dim cellLoop As Cell
   Set oDoc = Documents.Open("F:\li\li\范式.docx")
   Dim RowNum As Long, ColumnNum As Long, i As Long, oString As String
   For Each oTable In oDoc.Tables
       RowNum = oTable.Rows.Count
       Column = oTable.Columns.Count
       If Column >= 5 Then
            For i = 1 To RowNum
                    oString = oTable.Cell(i, 4).Range.Text
                    If InStr(1, oString, "日期") = 1 Then
                         oTable.Cell(i, 5).Select
                         Selection.Delete
                    End If
             Next
        End If
   Next
   MsgBox "Finished!"
End Sub

表格修改(修改表格内容)

Sub www()
'
' www 宏
'
'
   Dim oDoc As Document
   Dim oTable As Table
   Dim cellLoop As Cell
   Set oDoc = Documents.Open("D:\Users\说明书.docx")
   Dim RowNum As Long, ColumnNum As Long, i As Long, oString As String
   For Each oTable In oDoc.Tables
       RowNum = oTable.Rows.Count
       Column = oTable.Columns.Count
       If Column >= 5 Then
            For i = 1 To RowNum
                    oString = oTable.Cell(i, 4).Range.Text
                    If InStr(1, oString, "日期") = 1 Then
                         oTable.Cell(i, 4).Select
                         Selection.TypeText Text:="DATE"
                         oTable.Cell(i, 5).Select
                         Selection.TypeText Text:="7"
                    End If
                    If InStr(1, oString, "字符串") = 1 Then
                         oTable.Cell(i, 4).Select
                         Selection.TypeText Text:="VARCHAR2"
                    End If
                    If InStr(1, oString, "整数") = 1 Then
                         oTable.Cell(i, 4).Select
                         Selection.TypeText Text:="NUMBER"
                    End If
                    If InStr(1, oString, "小数") = 1 Then
                         oTable.Cell(i, 4).Select
                         Selection.TypeText Text:="FLOAT"
                    End If
                    
             Next
        End If
   Next
   MsgBox "Finished!"
End Sub

比较表格中某列的值

Sub www()
'
' www 宏
'
'
   Dim oDoc As Document
   Dim oTable As Table
   Dim cellLoop As Cell
   Set oDoc = Documents.Open("F:\work\二审\详细设计参考文档\30个单位规范信息资源库docx\办公厅标准信息资源目录.docx")
   Dim RowNum As Long, ColumnNum As Long, i As Long, oString As String
   Dim Ostr2, Ostr3 As String
   Ostr2 = "NULL"
   Ostr3 = "NUL"
   For Each oTable In oDoc.Tables
       RowNum = oTable.Rows.Count
       Column = oTable.Columns.Count
       If Column = 4 Then
            For i = 1 To RowNum
                    For j = 1 To Column
                        oString = oTable.Cell(i, j).Range.Text
                        If InStr(1, oString, "是否开放") = 1 Then
                            oStr = oTable.Cell(i, j).Next.Range.Text
                            If InStr(1, oStr, "否") = 1 Then
                                Ostr2 = "NO"
                            End If
                            If InStr(1, oStr, "是") = 1 Then
                                Ostr3 = "YES"
                            End If
                         'Selection.Delete
                        End If
                    Next
             Next
        End If
   Next
   MsgBox ("Ostr2:" + Ostr2)
   MsgBox ("Ostr3:" + Ostr3)
   MsgBox "Finished!"
End Sub

 

posted on 2019-01-22 16:31  风-fmgao  阅读(485)  评论(0编辑  收藏  举报