首页 > 解决方案 > 在第 1 行下方添加行,用 docvariable 和增量填充第一个单元格

问题描述

解决了我自己的问题。我需要首先检查第 2 列单元格是否为空,如果是则删除所述行。由于表的最后一行被合并,这导致了问题。然后,我需要在第一行下方添加行,以根据用户在 userform 中选择的 ArraySize 在表中维护每行 4 列。然后用用户表单中的 docvariable 填充每行中的第一个单元格,然后在每行中递增数字。然后按降序对表格进行排序。这是我将来使用的代码。

Private Sub cbArraySize_Click()

If cbArraySize.Value <> 0 Then

DeleteRows
AddRows
AddArrayName
TableSort

End If

End Sub

Sub DeleteRows()

Dim tbl As Word.Table
    Dim nrRows As Long, ColToCheck As Long, i As Long
    Dim cellRange As Word.Range

    Set tbl = ActiveDocument.Tables(2)
    nrRows = tbl.Rows.Count - 1
    ColToCheck = 2

    For i = nrRows To 1 Step -1
        Set cellRange = tbl.Cell(i, ColToCheck).Range
        If Len(cellRange.Text) = 2 Then
            cellRange.Rows(1).Delete
        End If
    Next i

End Sub

Sub AddRows()
With ActiveDocument

.Tables(2).Rows(1).Select
Selection.InsertRowsBelow (cbArraySize.Value)

End With
End Sub

Sub AddArrayName()
With ActiveDocument

Dim tbl As Object
Dim noOfCol As Integer
Dim i As Long
Dim intcount As Integer

Set tbl = .Tables(2)
        With tbl
            noOfCol = tbl.Range.Rows(1).Cells.Count
            For i = .Rows.Count To 1 Step -1
                With .Rows(i)
                    If Len(.Range) = noOfCol * 2 + 2 Then .Cells(1).Range.InsertAfter Text:=tbArrayName.Text + " - " & intcount
                intcount = intcount + 1
                End With
            Next i
End With
End With
End Sub

Sub TableSort()
ActiveDocument.Tables(2).Sort ExcludeHeader:=True
End Sub

标签: vbams-word

解决方案


在原始帖子中发布了我的工作代码。


推荐阅读