(VB.NET Word.Application)从光标读取文本没有';我不能正常工作
我正在尝试编写一个sub,msgbox将单词从当前光标放到word文档中的前一个分隔符(或标点符号、控件)中。下面是我在这个函数中写的内容 然而,msgbox显示的是“Test”,而不是“TestingStrin” 我不知道为什么会这样。谁能给我解释一下吗?有没有办法解决这个问题?提前谢谢 附言: 原来(VB.NET Word.Application)从光标读取文本没有';我不能正常工作,vb.net,Vb.net,我正在尝试编写一个sub,msgbox将单词从当前光标放到word文档中的前一个分隔符(或标点符号、控件)中。下面是我在这个函数中写的内容 然而,msgbox显示的是“Test”,而不是“TestingStrin” 我不知道为什么会这样。谁能给我解释一下吗?有没有办法解决这个问题?提前谢谢 附言: 原来mStart的值是75,mText的长度是86,这很奇怪(mStart应该等于mText的长度减去1) 也。表格的格式是“怪异字符”吗?第3行的mText值是多少?您可能应该放置Debug.Pr
mStart
的值是75
,mText
的长度是86
,这很奇怪(mStart
应该等于mText
的长度减去1
)
也。表格的格式是“怪异字符”吗?第3行的
mText
值是多少?您可能应该放置Debug.Print
语句,以查看变量的值以及终止点。有这么多信息很难猜测。@Neverhopess:我已经添加了mStart、mText和mText长度的值。很明显,您的算法是错误的(->当您得到与预期不同的结果时,您首先想到的也是唯一想到的)。如果你想快速(和/或根本不想)得到帮助,减少不相关的部分,并发布一个清晰简单的示例输入,任何人都可以直观地使用。一旦确认算法(循环)正确,您可能会开始怀疑互操作单词范围+光标位置是如何定义的。这是一个(多步骤的)调试问题(由错误的方法引起),您不应该期望其他人为您这样做。
Dim mStart = mwrdApp.Selection.Range.Start - 1 ' mwrdApp is current word application in my program
Dim mEnd = mStart
Dim mText = mwrdDoc.Range.Text ' mwrdDoc is current document opened in mwrdApp
Dim mWord = ""
Do
If mStart = -1 Then Exit Do
If Char.IsSeparator(mText(mStart)) Or Char.IsPunctuation(mText(mStart)) Or Char.IsControl(mText(mStart)) Then Exit Do
mWord = mText(mStart) + mWord
mStart -= 1
Loop
MsgBox(mWord)