Word 表格VBA 批量添加书签

mhnck 2018-07-10 10:27:08
之前没做过word项目,对word里的VBA不是很熟悉,虽然学过VB,也早就还给老师了。
先说遇到的问题,给word里的表格批量按顺序添加书签,一开始用下面的代码做,没发现问题,等到了程序里用C#进行数据插入的时候,就出大问题了,因为书签是按照整个格选取的,所以用C#做输入插入的时候,等于是给整个格插入了数据,直接导致表格异常。
Sub TestAddMarket()

Dim num As Integer
num = 0

Dim MyBk As Bookmark
For Each MyBk In ActiveDocument.Bookmarks
MyBk.Delete
Next


For r = 3 To 15 Step 1

For c = 3 To 23 Step 1
Selection.Tables(1).Cell(r, c).Range.Bookmarks.Add("TextBox" & c + 1 + num * 21)
Next c
num = num + 1
Next r

End Sub


然后研究了半天,发现是Range是一个集合,需要在用VBA做插入的时候,进行光标定位,然后再插入。
下面是能达到要求的代码,没有做过多的精简考虑,贴出来,供大家参考。
Sub TestAddMarket()

Dim num As Integer
num = 0

Dim MyBk As Bookmark
For Each MyBk In ActiveDocument.Bookmarks
MyBk.Delete
Next


For r = 7 To 8 Step 1

For c = 1 To 3 Step 1
Selection.Tables(1).Cell(r, c).Range.Bookmarks.Add ("TextBox" & c + 1 + num * 21)
Selection.GoTo What:=wdGoToBookmark, Name:=("TextBox" & c + 1 + num * 21)
ActiveDocument.Bookmarks(("TextBox" & c + 1 + num * 21)).Delete
Selection.EndKey
Selection.Bookmarks.Add ("TextBox" & c + 1 + num * 21), Selection.Range
Next c
num = num + 1
Next r

End Sub
...全文
1305 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

2,506

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧