我有许多MS Word表格,需要编辑11个cols。
每个文档将包含1个表。
我想编辑一个从11个列到6个列的表。
VBA执行以下任务:
将col 5标题从Type重命名为E或A
删除第2栏,第3栏和第5栏中的所有文字(不是重命名的标题)
我已经列出了编辑表格的顺序,我相信它会发挥最佳作用,但这并不重要。
我不知道是否可以删除第2,3,5栏中的文本而不删除标题。
最后,我猜我可以在cols 2,3,5中输入我想要的新标题,如果删除那些cols中的文本时删除了那些标题。
感谢您的帮助。
答案 0 :(得分:0)
希望这有帮助,
Option Explicit
Private Sub myTableMacro()
Dim tmpTable As Word.Table, tmpRange As Word.Range
With ActiveDocument
If .Tables.Count > 0 Then
For Each tmpTable In .Tables
'Rename col 2 heading from Time to Item
tmpTable.Cell(1, 2).Range.Text = "Item"
'Rename col 3 heading from Time Zone to Comment
tmpTable.Cell(1, 3).Range.Text = "Comment"
'Rename col 5 heading from Type to E or A
tmpTable.Cell(1, 5).Range.Text = "E or A"
'Delete all text in cols 2, 3 (but not the headers)
Set tmpRange = .Range(tmpTable.Cell(2, 2).Range.Start, tmpTable.Cell(tmpTable.Rows.Count, 3).Range.End)
tmpRange.Select
Selection.Delete Unit:=wdCharacter, Count:=1
'Delete all text in cols 5 (but not the headers)
Set tmpRange = .Range(tmpTable.Cell(2, 5).Range.Start, tmpTable.Cell(tmpTable.Rows.Count, 5).Range.End)
tmpRange.Select
Selection.Delete Unit:=wdCharacter, Count:=1
'Delete cols 10, 11
Set tmpRange = .Range(tmpTable.Cell(1, 9).Range.Start, tmpTable.Cell(1, 11).Range.End)
tmpRange.Select
Selection.Cells.Delete wdDeleteCellsEntireColumn
'Delete cols 6, 7, 9
Set tmpRange = .Range(tmpTable.Cell(1, 6).Range.Start, tmpTable.Cell(1, 7).Range.End)
tmpRange.Select
Selection.Cells.Delete wdDeleteCellsEntireColumn
Next 'tmpTable
End If
End With
Set tmpRange = Nothing
Set tmpTable = Nothing
End Sub
我已经测试过,发现确定。