Excel VBA重复查找和替换/从表/

时间:2015-06-16 13:14:11

标签: excel vba excel-vba vlookup

我正在尝试使用VBA在Excel中构建一个宏 - 它应该将一大堆字符串(如“YU-RN-PE-LT-JW-MN”)转换为其他内容“L3,N6,W2,P9,V7,F2”(破折号也应该变为逗号)根据在一列中指定“YU”的任意表,在另一列中指定“L3”,依此类推。

这是使正常搜索和查找变得复杂的表格事件,以及使正常Vlookup不足的重复查看。

非常感谢任何帮助。另请注意,在尝试构建此宏之前,我从未使用过VBA,所以假设我什么都不知道。

1 个答案:

答案 0 :(得分:0)

以下是一些示例代码,可以完成您要完成的任务。

Sub multi_replace()
Dim inArr, subArr, temp As Variant
Dim outArr() As String
inArr = Sheets(1).UsedRange.Value 'Replace with correct range here and below
subArr = Sheets(2).UsedRange.Value
ReDim outArr(1 To UBound(inArr, 1), 1 To UBound(inArr, 2))
For x = 1 To UBound(inArr, 1)
    For y = 1 To UBound(inArr, 2)
        temp = Split(inArr(x, y), "-")
        For i = 0 To UBound(temp)
            For j = 1 To UBound(subArr, 1)
                If temp(i) = subArr(j, 1) Then
                    temp(i) = subArr(j, 2)
                    Exit For
                End If
            Next j
        Next i
        outArr(x, y) = Join(temp, ",")
    Next y
Next x
With Sheets.Add
    .Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2)).Value = outArr
    .Columns.AutoFit
End With
End Sub