是否有人有VBA代码在MSWord表的第一列中创建书签?
假设我有一张看起来像这样的表
.-----.----------------.
. ref . Title .
.-----.----------------.
. 1 . Title 1 .
.-----.----------------.
. 2 . Title 2 .
.-----.----------------.
. foo . Title 3 .
.-----.----------------.
. bar . Title 4 .
.-----.----------------.
我想要一个VBA代码片段,在第2行/第1列的字符串“1”上创建名为“T1_1”的书签,在字符串中创建名为“T1_2”,“T1_foo”和“T1_bar”的书签第1列的其他单元格。
我不介意硬编码前缀“T1”(并且每次都替换其他表)。我不介意在运行宏之前选择表格,我不介意给那些单元格一个特殊的格式,我不介意从第一行得到多余的书签“T1_ref” - 所以代码没有需要区分表格标题和表格行。
提前多多感谢
答案 0 :(得分:4)
Public Sub Testing()
Dim strText As String
Dim i As Integer, j as Integer
For j = 1 To ThisDocument.Tables.Count
For i = 2 To ThisDocument.Tables(j).Rows.Count
strText = StripNonPrint(ThisDocument.Tables(j).Cell(i, 1).Range)
ActiveDocument.Bookmarks.Add Range:=ThisDocument.Tables(j).Cell(i, 1).Range, Name:="T1_" & strText
Next i
Next j
End Sub
Private Function StripNonPrint(ByVal s As String)
StripNonPrint = Trim(Replace(s, vbCr & Chr(7), ""))
End Function
这应该足以让你继续完成任务。这将为当前文档中任何表的第一列(第一行除外)中的每个单元格添加书签。