2016-06-21 11 views
2

"R"で始まる任意の値と10文字の特殊文字を検索して次の空白に貼り付けます別のシート上の列1のセル。 このコードを開発して、sheet2のRで始まる値をコピーし、sheet1の列1(A)に貼り付け、sheet2の数値の数字で始まる値をコピーし、sheet1の列4(D)に貼り付ける必要があります。シート2をループしてシート1の特定の列に特定の値をコピーする

"R"値は数値に関連付けられます。たとえば、Sheet2の上でA1は、(値が存在する場合)R000000_01とB1かもしれ12345これら二つはこれは私がこれまでに作成したものです

上述したようにA3とD3にコピーする必要があるかもしれない:

EnvRange = "A2:R999" 

RowNo = 3 
For Each C In Worksheets("Sheet2").Range(EnvRange) 
If Len(C.Value) < 10 Then 
GoTo NextCell 
ElseIf Len(C.Value) < 11 Then 
Worksheets("Sheet1").Cells(RowNo, 1).Value = C 
RowNo = RowNo + 1 
Else 
Chars = InStr(1, C, "R") 
Do While Chars < Len(C) 
Worksheets("Sheet1").Cells(RowNo, 1).Value = Mid(C, Chars, 10) 
Chars = InStr(Chars + 9, C, "R") 
RowNo = RowNo + 1 
If Chars = 0 Then GoTo NextCell 

Loop 
End If 

NextCell: Next C 

この件に関するお手伝いをさせていただきます。 ありがとうございます。

答えて

3

あなたは形式を確認するためにLikeを使用することができます。

Sub Tester() 

    Const ENV_RNG As String = "A2:R999" 

    Dim c As Range, RowNo As Long, sht As Worksheet 

    Set sht = Worksheets("Sheet1") 
    RowNo = 3 

    For Each c In Worksheets("Sheet2").Range(EnvRange) 
     If c.Value Like "R?????????" Then 
      sht.Cells(RowNo, 1).Value = c.Value 
      sht.Cells(RowNo, 4).Value = c.Offset(0, 1).Value 
      RowNo = RowNo + 1 
     End If 
    Next c 

End Sub 
+0

私は '各Cの場合では...'メソッドを使用してそれに応じた日付と場所の値をチェックするために使用する非常によく似たサブを持っており、それが動作します完璧に – Vbasic4now

+0

優秀!ありがとう@ティムウィリアムズ!これは魅力的に機能しました! – Paul

関連する問題