Code sửa dữ liệu trong Sheet1 từ Sheet2

  • Thread starter Thread starter khamha
  • Ngày gửi Ngày gửi
Liên hệ QC

khamha

Không có việc gì khó...
Tham gia
4/6/10
Bài viết
662
Được thích
846
Nghề nghiệp
CNVC Laos
C [FONT=&quot]ác[/FONT] [FONT=&quot]bạn[/FONT] l [FONT=&quot]à[/FONT]m giup m [FONT=&quot]ình[/FONT] c [FONT=&quot]á[/FONT]i Code sửa dữ liệu trong Sheet1 từ Sheet2,C [FONT=&quot]ả[/FONT]m [FONT=&quot]ơ[/FONT]n c ác b[FONT=&quot]ạ[/FONT]n nhi [FONT=&quot]ề[/FONT]u
 

File đính kèm

C [FONT=&quot]ác[/FONT] [FONT=&quot]bạn[/FONT] l [FONT=&quot]à[/FONT]m giup m [FONT=&quot]ình[/FONT] c [FONT=&quot]á[/FONT]i Code sửa dữ liệu trong Sheet1 từ Sheet2,C [FONT=&quot]ả[/FONT]m [FONT=&quot]ơ[/FONT]n c ác b[FONT=&quot]ạ[/FONT]n nhi [FONT=&quot]ề[/FONT]u
Bạn dùng code củ chuối ở file đính kèm nhé.
1.) Dùng Worksheetfunction.Vlookup để tìm dữ liệu
2.) Dùng Find để tìm và thay thế.
 

File đính kèm

Đây là cặp macro của bạn

(1) cái ni ở trang tính 'Sua" (Macro sự kiện tại [C1]):

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c1]) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range
            
   Set Sh = Sheets("Dulieu")
   Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
   Set sRng = Rng.Find([c1].Value, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      [A3].Resize(, 3).Value = sRng.Resize(, 3).Value
   Else
      MsgBox "Nothing"
   End If
 End If
End Sub
(2) Còn cái ni trong module & bạn gán vô nút lệnh 'Save' đang có của bạn.

PHP:
Option Explicit
Sub SuaDuLieu()
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 
 Set Sh = Sheets("Dulieu")
 Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
 Set sRng = Rng.Find([A3].Value, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
   sRng.Offset(, 1).Resize(, 2).Value = Range("B3:C3").Value
 Else
   MsgBox "Nothing"
 End If
End Sub
Những mong khỏi đưa file lên!
 
C[FONT=&quot]ả[/FONT]m [FONT=&quot]ơ[/FONT]n bạn [FONT=&quot]đã[/FONT] giup, [FONT=&quot]mình[/FONT] xin h [FONT=&quot]ỏ[/FONT]i th [FONT=&quot]ê[/FONT]m l [FONT=&quot]à[/FONT] n [FONT=&quot]ế[/FONT]u [FONT=&quot]có[/FONT] nhi [FONT=&quot]ề[/FONT]u c [FONT=&quot]ộ[/FONT]t muốn [FONT=&quot]sửa[/FONT] thi ph[FONT=&quot]ả[/FONT]i sửa lại code nh [FONT=&quot]ư[/FONT] th[FONT=&quot]ế[/FONT] n[FONT=&quot]à[/FONT]o
 
(1) cái ni ở trang tính 'Sua" (Macro sự kiện tại [C1]):

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c1]) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range
            
   Set Sh = Sheets("Dulieu")
   Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
   Set sRng = Rng.Find([c1].Value, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      [A3].Resize(, 3).Value = sRng.Resize(, 3).Value
   Else
      MsgBox "Nothing"
   End If
 End If
End Sub
(2) Còn cái ni trong module & bạn gán vô nút lệnh 'Save' đang có của bạn.

PHP:
Option Explicit
Sub SuaDuLieu()
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 
 Set Sh = Sheets("Dulieu")
 Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
 Set sRng = Rng.Find([A3].Value, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
   sRng.Offset(, 1).Resize(, 2).Value = Range("B3:C3").Value
 Else
   MsgBox "Nothing"
 End If
End Sub
Những mong khỏi đưa file lên!

Bạn cho hỏi là: nếu số thứ tự nằm trong cột E từ E4:E65536 thì phải sửa Code thế nào để hiện và sửa được dữ liệu nằm ở cột B,C và D
Cảm ơn bạn
 
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [C1]) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range
            
   Set Sh = Sheets("Dulieu")
   Set Rng = Sh.Range(Sh.[E1], Sh.[E65500].End(xlUp)) '<=|'
   
   Set sRng = Rng.Find([C1].Value, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
        [B3].Resize(, 4).Value = sRng.Offset(, -3).Resize(, 4).Value  '<=|'
   Else
      MsgBox "Nothing"
   End If
 End If
End Sub

PHP:
Option Explicit
Sub SuaDuLieu()
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 
 Set Sh = Sheets("Dulieu")
 Set Rng = Sh.Range(Sh.[E1], Sh.[E65500].End(xlUp))  '<=|'
 Set sRng = Rng.Find([C1].Value, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
   sRng.Offset(, -3).Resize(, 3).Value = Range("B3:D3").Value   '<=|'
 Else
   MsgBox "Nothing"
 End If
End Sub
 
Web KT

Bài viết mới nhất

Back
Top Bottom