查找表后查找并替换值

时间:2017-07-17 02:23:14

标签: excel-vba vba excel

我有一张名为"表"我有桌子,我抬头看A2:B20, A2:A20包含" XX"格式这些是我将要查找的数字。

表中的B2:B20部分包含文本,我想用这个文本替换值。

我有我的主要工作表(目前称为#34;测试"),其中包含我的数据,我想查看M列并检查我是否可以找到前两个字符匹配任何一个字符的值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

1 个答案:

答案 0 :(得分: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