2016-06-13 7 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が移動しますが、最初に、目的の場所の上に1つのセルが移動します。何か案は? – Rob

+0

アイテムは最初の実行のために同じサイズではないので、これは予想される動作です。最初の列に挿入するのではなく、行全体を挿入する必要があります。 – Sgdva

関連する問題