我正在尝试使用VBA
在Excel中构建一个宏 - 它应该将一大堆字符串(如“YU-RN-PE-LT-JW-MN”
)转换为其他内容“L3,N6,W2,P9,V7,F2”
(破折号也应该变为逗号)根据在一列中指定“YU”
的任意表,在另一列中指定“L3”
,依此类推。
这是使正常搜索和查找变得复杂的表格事件,以及使正常Vlookup不足的重复查看。
非常感谢任何帮助。另请注意,在尝试构建此宏之前,我从未使用过VBA,所以假设我什么都不知道。
答案 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