怎样用VBA代码判断当前选中的内容是否在同一行?
怎样用VBA代码判断当前选中的内容是否在同一行? PPT中,编辑状态下,怎样用VBA代码判断当前选中的内容是否在同一行? 文本框中,硬回车为段落。因为文本框的长短和文字的大小,有的段落看似为一行或多行。实际上在文本框中,行和段是同一个概念,眼睛看到的多行,其实还是一行Lines(或一段paragraphs)。所以你的问题可以认为:选中文字为一段还是两段。
你可以从这几方面入手:
1、选中文字所在段的长度,2、起始字选中文字长度,3、设定一个公式判断,4、得出结论。
好像第一个问题不太好解,后面的比较简单。
可能有用的部分代码
s = ActiveWindow.Selection.TextRange.Start
l = ActiveWindow.Selection.TextRange.Length
t = ActiveWindow.Selection.TextRange.Text
我觉得好像用正则能解决。 终于找到方法了,代码还不成熟。
Set rng1 = ActiveWindow.Selection.TextRange.Lines
然后,判断rng1.Item(2).Text有没有,一行只有rng1.Item(1),两行才有rng1.Item(2),同理三行就有rng1.Item(3)……如果没有rng1.Item(2),说明只有一行,否则,就是多行。大概就是这个意思。
如果做好了,我学习下你的代码。 行了,能通过。
Sub test5()
On Error Resume Next
c1 = ActiveWindow.Selection.TextRange.Lines.count
If c1 > 1 Then
MsgBox "选中文字不在一行"
Else
MsgBox "在一行"
End If
End Sub
复制代码
测试下。 谢谢你的大力帮助 也请你帮助我下,ppt英文双引号转中文(),能替换一两组,不能替换所有,应该是循环里出现的问题,麻烦,谢谢。 正需要,下载试用,感谢老师无私分享!
页:
[1]