2015-08-24 26 views
0

以下是功能我有添加非强调进入VBA需要范围的援助

(简化了一点,也有做这个的两倍加1串强调的功能,然后在字符串后,没有下划线)

Function Add_Single_Entry(ByVal uEntry As String, ByVal ptime As String, ByVal crntValue As String) 

    uEntry = UCase(uEntry) 
    Call add_tList(ptime) 
    Dim rng1 As Word.Range 

    ' Set Selection position however is appropriate 
    Set rng1 = Selection.Range 
    rng1.End = rng1.Start 
    rng1.Text = uEntry 
    Selection.Start = rng1.End 
End Function 

我需要可以设置我的出发点是的crntValue最后一个实例的下一行,但我不知道怎么样。

为了阐明我希望代码在Word文档中找到说“0000Z”(crntValue)的最后一个实例,然后在下一行输入一个字符串。

+0

请提供更多的上下文。在这种情况下什么是“入口”?就Word用户而言,您的功能意味着什么? – Dai

+0

“Entry”是一个由各种用户输入的信息和预先设定的变量编译的字符串,重点在于程序有很多按钮,点击时会询问一些信息,然后用时间戳向字文档添加一个字符串-crntValue-通常看起来像“0000Z”我需要程序来查找word文档中最后一个crntValue实例,然后在它后面添加一个“Entry”。 – aethanskot

+0

也@戴感谢你编辑这个论坛出来,我从来没有真正使用过这种事情。 – aethanskot

回答

0

在这种情况下,宏记录器是一个很好的帮助 - 只需记录“goto结束,找到向上,插入新行”并调整记录的代码。

喜欢的东西

' goto end of document 
Selection.EndKey Unit:=wdStory 
With Selection.Find 
    .Text = crntValue 
    .Forward = False ' from bottom to top 
    .Format = False 
    ' adapt to your needs 
    .MatchCase = False 
    .MatchWholeWord = False 
End With 
' Check if the string was found 
If Selection.Find.Execute() Then 
    ' goto end of line 
    Selection.EndKey Unit:=wdLine 
    ' and insert new line 
    Selection.TypeParagraph 
    ' now you're ready to insert your entry 
Else 
    MsgBox "Sorry, " & crntValue & " was not found.", vbExclamation 
End If 
+0

这段代码是否正确地为你工作,当我看到它时,我只玩了一分钟,但到目前为止,它所做的一切都是在我的word文档的底部添加一个换行符...... – aethanskot

+0

添加了一个检查字符串被找到,请参阅编辑。但是,是的,如果字符串在文档中,它对我有用。注意:这段代码在''Set Selection'位置适合'时进入你现有的函数中,但它并不代替它。 – Andre

+0

确定检查帮助我意识到,即使crntValue从仅从先前的条目存储的列表中拉出,但它没有在文档中找到它,但我可以在我面前的文档中看到它。我会继续玩弄为什么会发生这种情况,但想要更新您的情况,以便您可以更快地解读此问题,同时感谢您的帮助 – aethanskot