Tìm & thay thế theo bảng mã quy định trước

Liên hệ QC

Thien

Thành viên thường trực
Tham gia
23/6/06
Bài viết
352
Được thích
112
Chào cả nhà!

Mình đang vướng chỗ này.
Mình muốn tìm & thay thế các tài khoản cũ trong cột A&B bằng tài khoản mới trong cột E&F.

Ví dụ: Khi cột A&B chứa TK 111 & 1121 thì sẽ được tìm & thay thế bằng TK mới trong cột F (cột E chứa TK cũ & cột F chức TK mới sẽ thay thế tài khoản cũ trong cột A&B).

Do diễn đạt văn tự còn dở nên vui lòng xem file đính kèm nhen.

Thân.
 

File đính kèm

  • Hoi thay the TK.xls
    43.5 KB · Đọc: 37
Sao TK mới (F) lại nhiều hơn vậy?
Vậy phần nhiều hơn này thay thế làm sao trong cột A-B?
Bạn chịu khó nói rõ hơn 1 chút nha!
Cái ví dụ của bạn chưa cụ thể lắm. Để em ví dụ như vầy ha!
Xét TK 635 (A15) và giờ muốn thay tài khoản mới tương ứng từ cột E sang cột F, nhưng em lại chẳng thấy phải thay đổi theo chỉ số dòng nào cả? Vậy với trường hợp này thì phải làm sao?
Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Sao TK mới (F) lại nhiều hơn vậy?
Vậy phần nhiều hơn này thay thế làm sao trong cột A-B?
Bạn chịu khó nói rõ hơn 1 chút nha!
Cái ví dụ của bạn chưa cụ thể lắm. Để em ví dụ như vầy ha!
Xét TK 635 (A15) và giờ muốn thay tài khoản mới tương ứng từ cột E sang cột F, nhưng em lại chẳng thấy phải thay đổi theo chỉ số dòng nào cả? Vậy với trường hợp này thì phải làm sao?
Thân.

TK cũ cũng nhiều bằng TK mới vậy nhưng mình đang nhờ viết code tìm & thay thế TK cũ trong cột A&B bằng cột F. Khi có code rùi mình sẽ phải gõ TK cũ vào cột E rùi mới chạy cocde.
Trong file chỉ minh hoạ vài TK cần thay thế thui. Chứ thật tế nhiều dòng lắm.

Hiện tại TK 635 là cũ nhưng mình chưa gõ Tk mới thay thế thì vẫn giữ nguyên vậy. Chỉ tìm ra những TK nào có trong danh mục tại cột E&F thì thay thế thui.

Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Chỉnh lại vầy cho nó hay!
Quét và bỏ chọn những dòng đã quét rồi luôn.
PHP:
Sub chay()
Dim vung As String, i As Long, j As Long
On Error GoTo Loi
vung = Range("E3:F" & [F65535].End(xlUp).Row).Address
For i = 1 To 2
For j = 3 To [A65535].End(xlUp).Row
    If Range(vung).Find(Cells(j, i)).Column <> 6 Then
        Cells(j, i) = Range(vung).Find(Cells(j, i)).Offset(, 1).Value
    End If
Next
Next
Loi:
MsgBox ("ko tim thay TK: " & Cells(j, i) & Chr(10) & "dia chi: " & Cells(j, i).Address)
Cells(j, i).Select
End Sub
Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào,

Nhờ các bạn giúp mình cái macro như sau:

Mình có 1 Sheet tên là Replace chứa các từ cần tìm & thay thế cho Sheet Text. Vd: file đính kèm theo mình có 2 sheet nêu trên & trong sheet Text mình sẽ thay thế toàn bộ những từ tìm được từ sheet Replace.

Rất mong các bạn giúp mình nhé. Thanks !
 

File đính kèm

  • Replace.rar
    435.9 KB · Đọc: 64
Upvote 0
Không hiểu ý đồ của bạn như thế nào, bạn muốn thay thế cái gì cho cái gì mới được chứ, bên sheet replace chỉ có 1 cột thì làm sao mà biết được bạn cần thay thế như thế nào?
 
Upvote 0
Giải bài Hoi thay the TK.xls:
Nguyên tắc giải:
Lấy tên tài khoản trong cột Nợ, và tìm trong cột TK cũ. Nếu có thì thay bằng tên TK mới tương ứng. Nếu không có thì vẫn giữ nguyên (vì có một số tên tài khoản không có trong cột TK cũ).

1. Bằng công thức:
Tạo 2 name TKOLD (cột TK cũ) và TKNEW (cột TK mới)
Nhập công thức vào 2 cột phụ (Ví dụ cột G, H)
G3=IF(ISNA(MATCH(A3;TKOLD;0));A3;INDEX(TKNEW;MATCH(A3;TKOLD;0);1))
H3=IF(ISNA(MATCH(B3;TKOLD;0));B3;INDEX(TKNEW;MATCH(B3;TKOLD;0);1))

Copy 2 cột G, H và Paste Speacial về cột A

2. Bằng VBA:

Tìm và thay trực tiếp 2 cột Nợ.
Mã:
Sub ThayTK()
Dim tkOld As Range, tkNew As Range, tk As String
Dim r As Long, rNc As Long, rTk As Long, nId As Long
On Error Resume Next
rNc = Cells(65536, 1).End(xlUp).Row
r = Cells(65536, 5).End(xlUp).Row
rTk = Cells(65536, 6).End(xlUp).Row
If r > rTk Then rTk = r
Set tkOld = Range(Cells(3, 5), Cells(rTk, 5))
Set tkNew = Range(Cells(3, 6), Cells(rTk, 6))
For c = 1 To 2
  For r = 3 To rNc
    rk = Cells(r, c)
    nId = Application.WorksheetFunction.Match(rk, tkOld, 0)
    If Err.Number Then
      Err.Number = 0
    Else
      Cells(r, c) = Application.WorksheetFunction.Index(tkNew, nId, 1)
    End If
  Next
Next c
End Sub
 

File đính kèm

  • Hoi thay the TK.xls
    84.5 KB · Đọc: 31
Upvote 0
Web KT
Back
Top Bottom