2016-06-13 68 views
0

目前我有代碼檢查找到的第一個「)」右側的單元格是否爲空,如果不是,則它將「A」列向下移動。我似乎無法弄清楚如何讓這個繼續運行,直到paren右邊的單元格爲空。任何幫助,將不勝感激。謝謝。直到循環檢查單元在VBA中不是空的?

Sub SeekParen() 
    Dim C As Range, wheree As Range, whatt As String 
    whatt = ")" 
    Set C = Range("A1:A10") 
    Set wheree = C.Find(what:=whatt, after:=C(1)).Offset(0, 1) 
    If Not IsEmpty(wheree.Address(0, 0)) Then 
     Range("A2").Select 
     Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
    End If 
End Sub 

回答

1

這工作?

Sub SeekParen() 
Dim C As Range, wheree As Range 
Dim whatt As String 
Dim TotalCycle As Long, CounterCycle As Long 
whatt = ")" 
Set C = Range("A1:A10") 

Set wheree = C.Find(what:=whatt, after:=C(1)).Offset(0, 1) 
TotalCycle = Application.WorksheetFunction.CountIf(C, whatt) 
For CounterCycle = 1 To TotalCycle 
If wheree.Value <> "" Then 
Range("A2").Select 
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
Set wheree = C.Find(what:=whatt, after:=C(wheree.Row)).Offset(0, 1) 
Else 
Exit For 
End If 
Next CounterCycle 
End Sub 
+0

謝謝。這工作得很好。出於某種原因,如果您不止一次運行它,它會將paren帶到我想要的位置,但是第一次將它放到所需位置上方的一個單元格中。有任何想法嗎? – Rob

+0

由於第一次執行時項目的大小不一樣,這是預期的行爲。您需要插入整行,而不是隻插入第一列。 – Sgdva