2017-07-17 13 views
0

テーブルを持っているテーブルがあります。私はテーブルを探しています。A2:B20、 A2:A20は "XX"見上げるだろう。テーブルを検索した後に値を検索して置き換えます。

テーブルのB2:B20部分にはテキストが含まれています。値を置き換えるために使用したいテキストです。

データを含むメインシート(現在は「テスト」と呼ばれています)がありますが、列Mを調べて、最初の2文字がA2の値のいずれかと一致する値を見つけることができるかどうかを確認します。 A20、一致が見つかった場合は、私のデータシート(Test)の列Fの値をB2:B20の対応する値に置き換えたいのであればそのまま残しておきます。

列Mのデータは数値がテキストとして保存されていると私は私を解決したときに、テーブルリスト1または11または2および22

' 
    Dim MyString As String 
    Counter = 2 
    1: 
    MyString = Sheets("Table").Range("A" & Counter).Value 

    For X = 1 To Range("M" & Rows.Count).End(xlUp).Row 
      If Replace(MyString, Left(Sheets("TEST").Range("M" & X).Value, 2), "") <> MyString Then Sheets("TEST").Range("F" & X).Value = Sheets("Table").Range("B" & Counter).Value 
    Next 
    Counter = Counter + 1 
If Counter <= Range("M" & Rows.Count).End(xlUp).Row Then 
GoTo 1: 
Else 
End If 

End Sub 

答えて

0

それは間違った値を交換しているように私が問題に実行していますよあまりにも多くのことをやっていました。単純化すると、値を.textに強制し、私の問題はなくなりました。

Sub BBK_Name() 
'Checks column U for start of data (1st 2 chars) 
' if they match an entry in bank table changes entry in column G to match table entry. 
' 

    Dim MyString As String 
    Counter = 2 
1: 
    MyString = Sheets("Table").Range("A" & Counter).Text 
    RplcValue = Sheets("Table").Range("B" & Counter).Text 
    For X = 1 To Range("M" & Rows.Count).End(xlUp).Row 
     If Left(Sheets("TEST").Range("M" & X).Value, 2) = MyString Then _ 
      Sheets("TEST").Range("F" & X).Value = RplcValue 
    Next 

    Counter = Counter + 1 

    If Counter <= Range("M" & Rows.Count).End(xlUp).Row Then 
     GoTo 1: 
    Else 
    End If 

End Sub 
関連する問題