|
本帖最后由 413191246se 于 2021-1-9 13:38 编辑
* 楼主,请复制你的 EXCEL 数据到 Word 中,试用我为你编制的宏(因为不会 EXCEL 编程)。
* 请耐心等待,直到完成,再复制回 EXCEL,请自行检查校对;如果数据不对请弃用。
- Sub MachineYear()
- Dim i&, r As Range, j&, k&, n&, DateNum&, MachNum&
- DateNum = ActiveDocument.Tables(1).Rows.Count - 1
- MachNum = ActiveDocument.Tables(1).Columns.Count - 1
- With Selection
- .EndKey 6
- .TypeText Text:="***"
- .Tables.Add Range:=.Range, NumRows:=DateNum * MachNum + 1, NumColumns:= _
- 3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
- .TypeText Text:="号机"
- .MoveRight 12
- .TypeText Text:="年月"
- .MoveRight 12
- .TypeText Text:="生产数"
- For j = 1 To DateNum
- For n = 1 To MachNum
- i = i + 1
- k = k + 1
- If k > MachNum Then k = k - MachNum
- With .Tables(1)
- .Cell(i + 1, 1).Range.Text = Replace(ActiveDocument.Tables(1).Rows(1).Cells(k + 1).Range.Text, vbCr, "")
- .Cell(i + 1, 2).Range.Text = Replace(ActiveDocument.Tables(1).Cell(j + 1, 1).Range.Text, vbCr, "")
- .Cell(i + 1, 3).Range.Text = Replace(ActiveDocument.Tables(1).Cell(j + 1, n + 1).Range.Text, vbCr, "")
- End With
- Next
- Next
- End With
- MsgBox "OK!", 0 + 48
- End Sub
复制代码 |
|