2013-05-14 110 views
4

我有一個宏,我用它來突出顯示要做列表的行,以查看我所處的步驟。這很簡單。它不突出顯示當前行,並突出顯示下一行。以某種方式指示Word VBA中的最後一行

Sub Highlight_Next_Row_Down() 
    Selection.EndKey Unit:=wdLine 
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
    Selection.Range.HighlightColorIndex = wdNoHighlight 
    Selection.MoveDown Unit:=wdLine, Count:=1 
    Selection.EndKey Unit:=wdLine 
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
    Selection.Range.HighlightColorIndex = wdYellow 
End Sub 

現在,我希望它只是當我在文檔的最後一行時忽略當前行,因爲那樣我就完成了。我會通過在整個事件(減去子語句)中插入if語句來執行此操作,首先檢查它是否是最後一行。但是,我不知道如何檢查一條線是否是最後一條線。我搜索了一下,但沒有發現任何東西。

同樣,我有一個「Highlight_Next_Row_Up」,我想知道如何做到這一點,當我到達頂線。

感謝所有幫助

回答

3

我不知道這是否是你所需要的確切的邏輯,但這個碼呈現,如果你是在文件的最後一行檢查可能的方式之一。

Sub Highlight_Next_Row_Down() 
    Selection.EndKey Unit:=wdLine 
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
    'here check if this is the end 
    If Selection.End = ActiveDocument.Bookmarks("\EndOfDoc").Range.End Then 
     'just unhighlight 
     Selection.Range.HighlightColorIndex = wdNoHighlight 
    Else 
     'your code here 
     Selection.Range.HighlightColorIndex = wdNoHighlight 
     Selection.MoveDown Unit:=wdLine, Count:=1 
     Selection.EndKey Unit:=wdLine 
     Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
     Selection.Range.HighlightColorIndex = wdYellow 
    End If 
End Sub 

請記住,任何額外的空段落移動end of document某處您文本的最後一行的下方。

+0

對不起,這麼長時間來看着這個。這似乎正是我想要的。我感謝您的幫助。而且,我很容易就能對Highlight_Next_Row_Up進行必要的更改。 – Graphth

0

可以採取的另一種方法是設置利用MoveDown方法返回變量的能力。如果,代替:

Selection.MoveDown單位:= wdLine,計數:= 1,

你寫:

C = Selection.MoveDown(wdLine,1),

則變量c將假定一個值等於選擇實際移動的許多單位。所以,只要選擇在文本的主體中,它就沿着一條線向下移動,而c = 1。而在文本的末尾,選擇不能沿着另一條線移動,因此c = 0。這樣你設置了一個簡單的控制條件:

如果C = 0,那麼...

做,直到C = 0 ...