Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(VB.NET Word.Application)从光标读取文本没有';我不能正常工作_Vb.net - Fatal编程技术网

(VB.NET Word.Application)从光标读取文本没有';我不能正常工作

(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

我正在尝试编写一个sub,msgbox将单词从当前光标放到word文档中的前一个分隔符(或标点符号、控件)中。下面是我在这个函数中写的内容

然而,msgbox显示的是“Test”,而不是“TestingStrin”

我不知道为什么会这样。谁能给我解释一下吗?有没有办法解决这个问题?提前谢谢

附言: 原来
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)