我有一个.docm带有用户表单的文档。在用户表单上,我有一个按钮需要在文档中最后一个已知的光标位置插入一些东西(一些文本,对于初学者)。为此,我想创建一个范围。
我怎样才能获得这个范围的起始位置?
我需要在 Word 文档中获取当前的滚动位置(我认为这是正确的术语;即,我的虚拟镜头指向文档的位置,而不是我的光标所在的位置),以便在运行宏时可以返回最后到那个位置。
我写了一个宏,从当前光标位置向后搜索专利申请零件号,将候选的下一个可用零件号确定为前一个 max + 1,然后搜索出现在光标下方的数字的排序列表,以查看候选零件号与下一个使用的数字发生冲突,如果是,则将候选者加 1 并再次检查冲突,直到找到最小的未使用整数,以尽可能遵循在描述正文中引入部分的约定按零件号顺序。
然后它在当前光标位置插入该数字。它工作正常;但是,它会将当前行移动到查看窗口的顶部,这会令人迷惑。我宁愿将卷轴留在原处。这是我的代码:
Sub InsertLocalNextPartNum()
Application.ScreenUpdating = False
Dim re As VBScript_RegExp_55.RegExp
Set re = New VBScript_RegExp_55.RegExp
re.pattern = "\b(\d{2,3}\b)"
Run Code Online (Sandbox Code Playgroud)
' 2-3 位数字对于零件号来说有点过分,但就我的问题而言,我们不需要完整的正则表达式
re.IgnoreCase = False
re.Global = True
Dim txt As String
Dim allLongMatches As MatchCollection, m As Match
Dim nums() As Long
Dim numsColl As New Collection
Dim maxNum As Long
maxNum = 0
Dim nextPartNum As String
Dim localNextPartNum As String
localNextPartNum = 0
Dim i As Long
Dim j …Run Code Online (Sandbox Code Playgroud)