首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在列标题下面添加一行,并使用Word VBA宏向下移动现有行?

如何在列标题下面添加一行,并使用Word VBA宏向下移动现有行?
EN

Stack Overflow用户
提问于 2020-11-09 06:27:32
回答 3查看 156关注 0票数 0

每当我更新文档时,我都需要将一行添加到表的顶部,就在标题下面,然后将旧行移到下一个级别。表格通常出现在Word文档的最后一页。请找到随附的屏幕截图的预期和实际的行为。下面是我编写的实现代码:

  1. 转到最后一页,找到表
  2. 添加一行(这将在列标题上方添加)

期望:

  1. 在列标题之后立即添加行,并将现有行移到下一级别。
  2. 将日期添加到第二列。点击屏幕截图

我的代码:

亚Macro1()

代码语言:javascript
运行
复制
Selection.EndKey Unit:=wdStory
Dim theTable As Table
Dim theNewRow As Row
For Each theTable In ActiveDocument.Tables
    Set theNewRow = theTable.Rows.Add(theTable.Rows.First)
    'Other row formatting
Next theTable

结束子对象

我正在学习VBA,任何帮助都是非常有用的。耽误您时间,实在对不起。

screenshot2

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-11-09 10:31:04

正如Intellisense所显示的,[BeforeRow].是Table.Rows.Add的输入参数这是一个可选参数,因此如果省略,则在表的最后一行之后添加新行。

由于您希望行在第一行之后,而在第二行之前,您需要将第二行作为参数传递。

代码语言:javascript
运行
复制
With ActiveDocument.Tables(ActiveDocument.Tables.Count)
   With .Rows.Add(.Rows(2))
      'add date
      .Cells(2).Range.Text = Format(Date, "MMMM d, yyyy")
      'add any additional row formatting
   End With
End With
票数 0
EN

Stack Overflow用户

发布于 2020-11-09 06:58:29

例如:

代码语言:javascript
运行
复制
With ActiveDocument
  With .Tables(.Tables.Count)
    .Split (2)
    With .Range.Characters.Last.Next
      .FormattedText = .Next.Rows(1).Range.FormattedText
    End With
    .Rows(2).Range.Delete
  End With
End With

但是,您所说的“将现有的行移到下一个级别”的含义还不清楚。

票数 0
EN

Stack Overflow用户

发布于 2020-11-09 08:04:38

它需要next

代码语言:javascript
运行
复制
Sub test()
    Selection.EndKey Unit:=wdStory
    Dim theTable As Table
    Dim theNewRow As Row
    For Each theTable In ActiveDocument.Tables
        Set theNewRow = theTable.Rows.Add(theTable.Rows.First.Next) '<~~ add next
    
        'Other row formatting
    Next theTable
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64746757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档