2017-07-17 58 views
0

我有一張名爲「Table」的表格,我有表格我正在查找它的A2:B20, A2:A20包含「XX」格式的數字這些是數字I將會擡頭看。查找表後查找並替換數值表

包含文本的B2:B20部分是我想用來替換值的文本。

我有我的主表(當前稱爲「測試」),其中包含我的數據,我想看看M列,並檢查是否可以找到一個值,其中前2個字符匹配A2中的任何一個值: A20,如果我確實找到了匹配,那麼我想用數據表(測試)中列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

我解決了我自己的問題,我做得太多 - 簡化它強制價值的文本和我的問題消失。

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