首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不保留单元格格式的情况下为Word表格单元格的内容添加书签(Word VBA)

如何在不保留单元格格式的情况下为Word表格单元格的内容添加书签(Word VBA)
EN

Stack Overflow用户
提问于 2018-01-08 13:57:01
回答 1查看 822关注 0票数 0

我正在尝试将Word表格单元格的内容加入书签(内容将是数字),这样我就可以在文档中的其他地方交叉引用文本中的书签-目标是如果单元格中的数字发生变化,通过运行“更新所有字段”宏(我已经有了),我可以更新所有文本中对这些数字的引用,而不必手动搜索整个文档。我已经在互联网上找到了类似的东西(我的改编版本如下所示),但是这种方法的问题是,当我试图交叉引用书签时,它会保持单元格的格式-所以会有文本,然后突然出现一个随机的单元格,然后是更多的文本。这种方法的好处是,数字确实会按照预期的方式更新,我只是无法摆脱单元格格式。

代码语言:javascript
复制
Sub BookmarkCurrentCell()

    If Selection.Information(wdWithInTable) Then
        selectedTable = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count
        selectedColumn = Selection.Information(wdStartOfRangeColumnNumber)
        selectedRow = Selection.Information(wdStartOfRangeRowNumber)
    End If
    ActiveDocument.Bookmarks.Add Name:="Bookmark_" & selectedTable & "_" & selectedRow & "_" & selectedColumn, Range:=ActiveDocument.Tables(selectedTable).Cell(selectedRow, selectedColumn).Range

End Sub

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-08 17:45:24

试试这个:

代码语言:javascript
复制
Sub BookmarkCurrentCell()
Dim rng As Range
    If Selection.Information(wdWithInTable) Then
        selectedTable = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count
        selectedColumn = Selection.Information(wdStartOfRangeColumnNumber)
        selectedRow = Selection.Information(wdStartOfRangeRowNumber)
    End If
    Set rng = ActiveDocument.Tables(selectedTable).Cell(selectedRow, selectedColumn).Range
    rng.End = rng.End - 1
    ActiveDocument.Bookmarks.Add Name:="Bookmark_" & selectedTable & "_" & selectedRow & "_" & selectedColumn, Range:=rng

End Sub

我认为问题是您将书签应用于整个单元格,修改后的代码将range =设置为单元格范围,然后将范围的末尾向后移动1个字符,以便它只包含单元格内容(而不是实际的单元格)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48144915

复制
相关文章

相似问题

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