- Tham gia
- 23/3/16
- Bài viết
- 705
- Được thích
- 52
{Ctrl + H} 6 lần. Chưa đầy 1 phút.
Thử với:Chào cả nhà GPE ! Mình dùng hàm SUBSTITUTE() để thay thế 1 ký tự nào đó = 1 ký tự khác thì ok. Nhưng trường hợp thay thế theo giá trị trong bảng dò thì phải làm sao. Các bạn giúp mình công thức hoặc Code cũng được. Xin chân thành cảm ơn
View attachment 174941
Sub abc()
Dim Tim, Thay, i As Long
Tim = Array("tp", "tg", "hg", "la", "dn", "hn")
Thay = Array("a1", "a2", "a3", "a4", "a5", "a6")
For i = LBound(Tim) To UBound(Tim)
Sheets(1).Columns(2).Replace Tim(i), Thay(i)
Next i
End Sub
Chẳng tin...Dạ Em cảm ơn anh. Cái Vụ Ctrl + H em cũng biết. Nhưng khổ nỗi các Bảng dò của em ở trên là e ví dụ nên mới có 6 dòng. chứ thực tế gần 100 dòng anh ak. Với lại giá trị bảng đò em thay đổi thường xuyên, nên em muốn dùng code hay công thức để cho kết quả cập nhật luôn
Function ThayKyTu(ma As String, Rng As Range, n As Long)
Dim my_arr, sArr, d As Object, v As Variant
Dim j As Long, I As Long
On Error Resume Next
sArr = Rng.Value
my_arr = Split(ma, ".")
For I = LBound(my_arr) To UBound(my_arr)
For j = 1 To UBound(sArr)
If sArr(j, 1) = my_arr(I) Then
If I = 0 Then
ThayKyTu = Application.WorksheetFunction.Substitute(ma, my_arr(I), sArr(j, n))
Else
ThayKyTu = Application.WorksheetFunction.Substitute(ThayKyTu, my_arr(I), sArr(j, n))
End If
End If
Next j
Next I
End Function
=ThayKyTu(B3;$E$3:$F$8;2)
Thử với:
PHP:Sub abc() Dim Tim, Thay, i As Long Tim = Array("tp", "tg", "hg", "la", "dn", "hn") Thay = Array("a1", "a2", "a3", "a4", "a5", "a6") For i = LBound(Tim) To UBound(Tim) Sheets(1).Columns(2).Replace Tim(i), Thay(i) Next i End Sub
Cho em góp vui 1 hàm:
Công thức C3:Mã:Function ThayKyTu(ma As String, Rng As Range, n As Long) Dim my_arr, sArr, d As Object, v As Variant Dim j As Long, I As Long On Error Resume Next sArr = Rng.Value my_arr = Split(ma, ".") For I = LBound(my_arr) To UBound(my_arr) For j = 1 To UBound(sArr) If sArr(j, 1) = my_arr(I) Then If I = 0 Then ThayKyTu = Application.WorksheetFunction.Substitute(ma, my_arr(I), sArr(j, n)) Else ThayKyTu = Application.WorksheetFunction.Substitute(ThayKyTu, my_arr(I), sArr(j, n)) End If End If Next j Next I End Function
Mã:=ThayKyTu(B3;$E$3:$F$8;2)
Cho em góp vui 1 hàm:
Công thức C3:Mã:Function ThayKyTu(ma As String, Rng As Range, n As Long) Dim my_arr, sArr, d As Object, v As Variant Dim j As Long, I As Long On Error Resume Next sArr = Rng.Value my_arr = Split(ma, ".") For I = LBound(my_arr) To UBound(my_arr) For j = 1 To UBound(sArr) If sArr(j, 1) = my_arr(I) Then If I = 0 Then ThayKyTu = Application.WorksheetFunction.Substitute(ma, my_arr(I), sArr(j, n)) Else ThayKyTu = Application.WorksheetFunction.Substitute(ThayKyTu, my_arr(I), sArr(j, n)) End If End If Next j Next I End Function
Mã:=ThayKyTu(B3;$E$3:$F$8;2)
Mình cũng không biết nữa. Bạn xem file có bị như vậy không nhadạ em cảm ơn anh. Anh xem lại sao em làm giống như code anh mà nó bị lỗi anh ơi
View attachment 174946
Trong VBA có hàm Replace sao bạn không dùng mà lại đi dùng SUBSTITUTE?Cho em góp vui 1 hàm:
Công thức C3:Mã:Function ThayKyTu(ma As String, Rng As Range, n As Long) Dim my_arr, sArr, d As Object, v As Variant Dim j As Long, I As Long On Error Resume Next sArr = Rng.Value my_arr = Split(ma, ".") For I = LBound(my_arr) To UBound(my_arr) For j = 1 To UBound(sArr) If sArr(j, 1) = my_arr(I) Then If I = 0 Then ThayKyTu = Application.WorksheetFunction.Substitute(ma, my_arr(I), sArr(j, n)) Else ThayKyTu = Application.WorksheetFunction.Substitute(ThayKyTu, my_arr(I), sArr(j, n)) End If End If Next j Next I End Function
Mã:=ThayKyTu(B3;$E$3:$F$8;2)
Function ThayKyTu(ma As String, Rng As Range, n As Long)
Dim sArr, j As Long
On Error Resume Next
sArr = Rng.Value
ThayKyTu = ma
For j = 1 To UBound(sArr, 1)
ThayKyTu = Replace(ThayKyTu, sArr(j, 1), sArr(j, n), 1, , vbTextCompare)
Next
End Function