Sửa dùm code tìm thấy tên đăng nhập và cập nhật dữ liệu (1 người xem)

  • Thread starter Thread starter bebeen
  • Ngày gửi Ngày gửi

Người dùng đang xem chủ đề này

bebeen

Thành viên thường trực
Tham gia
13/2/12
Bài viết
213
Được thích
24
Em có ví dụ này nhờ các anh chị. Em muốn tìm đúng tên và sửa rồi cập nhật lại dữ liệu theo đúng tên đó.
Mã:
Private Sub CommandButton1_Click()
    Dim Vung As Range
    Dim MyR As Range
    Dim i As Integer
    Set Vung = S1.Range(S1.[E7], S1.[E13].End(xlUp))
    Set MyR = Vung.Find(uFEdit.TextBox1.Value, , xlValues, xlWhole)
    If Not MyR Is Nothing Then
        With S1
            i = .Range("E13").End(3).Row
            .Cells(i, 5).Resize(, 1) = uFEdit.TextBox1.Value
            .Cells(i, 6).Resize(, 2) = uFEdit.TextBox2.Value
            .Cells(i, 7).Resize(, 3) = uFEdit.TextBox3.Value
        End With
    Else
        MsgBox "Khong tim thay de sua!"
    End If
    Set MyR = Nothing
    Set Vung = Nothing
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Em có ví dụ này nhờ các anh chị. Em muốn tìm đúng tên và sửa rồi cập nhật lại dữ liệu theo đúng tên đó.
Mã:
Private Sub CommandButton1_Click()
    Dim Vung As Range
    Dim MyR As Range
    Dim i As Integer
    Set Vung = S1.Range(S1.[E7], S1.[E13].End(xlUp))
    Set MyR = Vung.Find(uFEdit.TextBox1.Value, , xlValues, xlWhole)
    If Not MyR Is Nothing Then
        With S1
            i = .Range("E13").End(3).Row
            .Cells(i, 5).Resize(, 1) = uFEdit.TextBox1.Value
            .Cells(i, 6).Resize(, 2) = uFEdit.TextBox2.Value
            .Cells(i, 7).Resize(, 3) = uFEdit.TextBox3.Value
        End With
    Else
        MsgBox "Khong tim thay de sua!"
    End If
    Set MyR = Nothing
    Set Vung = Nothing
End Sub
Code này có một số vấn đề:
1. Với câu lệnh i = .Range("E13").End(3).Row thì bao giờ ta cũng làm việc với hàng cuối, bất kể trên Form nhập gì, miễn là tìm thấy tên đăng nhập.
2. Có mấy chỗ .Resize(,...) sẽ cho biết chương trình sẽ gán dữ liệu không chỉ cho 1 ô mà một số ô, như vậy là không đúng yêu cầu.
3. Câu lệnh gán ô E... bằng Textbox1 là không cần thiết, vì nó chẳng thay đổi gì.
Ngoài ra, sheet lưu những thông tin này thông thường hay được ẩn hàng, cột, sheet nên phương thức Find sử dụng ở đây có vẻ không ổn, có thể sẽ không tìm thấy dữ liệu.

Mình góp 1 code để tham khảo nhé:
[GPECODE=vb]Private Sub CommandButton1_Click()
Dim i As Long
If TextBox1 = "" Then
MsgBox "Chua nhap ten dang nhap!": Exit Sub
End If
For i = 7 To 12
If S1.Cells(i, 5) = TextBox1 Then
S1.Cells(i, 6) = TextBox2
S1.Cells(i, 7) = TextBox3
Exit For
End If
Next
If i = 13 Then MsgBox "Khong tim thay ten dang nhap"
End Sub[/GPECODE]
 
Upvote 0

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

Back
Top Bottom