maytinhvp01
Thành viên thường trực
- Tham gia
- 27/7/13
- Bài viết
- 390
- Được thích
- 179
Bạn sử dụng thử Dictionary xem, lấy Key là STT, Item tương ứng bằng STT luôn. Khi nhấp "Sửa dữ liệu" thì chương trình tìm đến dòng (thông qua thuộc tính Item của Dictionary) trên Sheet và sửa trực tiếp luôn vậy.
Trước đó, bạn sử dụng sự kiện ListBox1_Click() trên userform, để khi click vào dòng nào đó trên userform thì các thông số trên hàm đó truyền tới textbox tương ứng. Thông qua câu lệnh:
UserForm1.stt.Caption = UserForm1.listbox1.column(0)
...
theo ý mình thì phần đặt tên cho Textbox bạn để mặc định Textbox1, Textbox2, .... Khi đó việc điền dữ liệu chỉ cần dòng lệnh For .. to.. là gọn (vì form của bạn cũng không nhiều đối tượng textbox lắm)
Bài này không ai giup mình sao? thôi lại đợi vây?
Private Sub CommandButton1_Click()
Dim i As Long, arr(1 To 4)
i = ListBox1.ListIndex
arr(1) = stt.Text: arr(2) = ten.Text
arr(3) = ma.Text: arr(4) = kh.Text
If i > -1 Then
Sheet1.Range("vung").Offset(i).Resize(1).Value = arr
End If
End Sub
Private Sub ListBox1_Click()
Dim i As Long
With Me.ListBox1
i = .ListIndex
stt.Text = .List(i, 0)
ten.Text = .List(i, 1)
ma.Text = .List(i, 2)
kh.Text = .List(i, 3)
End With
End Sub
Thêm code này vào UserForm xem:
Code viết đơn giản cho bạn dễ đọc, dễ sửaMã:Private Sub CommandButton1_Click() Dim i As Long, arr(1 To 4) i = ListBox1.ListIndex arr(1) = stt.Text: arr(2) = ten.Text arr(3) = ma.Text: arr(4) = kh.Text If i > -1 Then Sheet1.Range("vung").Offset(i).Resize(1).Value = arr End If End Sub Private Sub ListBox1_Click() Dim i As Long With Me.ListBox1 i = .ListIndex stt.Text = .List(i, 0) ten.Text = .List(i, 1) ma.Text = .List(i, 2) kh.Text = .List(i, 3) End With End Sub
Bạn cho mình hỏi là mình có sửa ffile của bạn để dùng.Mọi thứ đều ổn chi riêng phần listbox là chư được.File của bạn là từ A623 giờ mình muốn sửa thành từ A6:H23 thì làm thế nào, m sửa ,mãi mà k được, phàn nhập thì m sủa được rồiCảm ơn anh nhiều! đúng là em đang cần và cũng là đang muốn học nữa ạ.
Bạn cho mình hỏi là mình có sửa ffile của bạn để dùng.Mọi thứ đều ổn chi riêng phần listbox là chư được.File của bạn là từ A623 giờ mình muốn sửa thành từ A6:H23 thì làm thế nào, m sửa ,mãi mà k được, phàn nhập thì m sủa được rồi
Mình sửa rồi mà vẫn k được,m gửi file lên bạn xem dùm với nhé
Các thầy giúp đoạn code để phần ngày đúc tren form tự hiện ngày k phải nhập được k, e viết code mà nó báo lỗi hoàiXin lỗi:
- Do File trên tôi làm trên màn hình 19', quên kiểm tra nên khi mở form trên màn hình 17' nó sẽ bị khuất 1 phần không nhìn thấy được.
- Hôm nay tôi tải lại File đã sửa lại theo màn hình 17', mong các bạn thông cãm (sơ xuất trên).
Me.txtNgayDuc = Format(Now, "dd/mm/yyyy")
Me.txtNgayDuc = Format(Me.txtNgayDuc, "dd/mm/yyyy")
Tôi làm luôn giùm cho bạn.
Lưu ý:
- Tiêu đề bạn không được để chung 1 dòng.
- Để nhập liệu vào bảng tính, Click vào list Box để lấy dữ liệu thích hợp đưa vào Form, sửa nội dung cần sửa và nhấn nút Nhập liệu.
- Để sửa dữ liệu, Click vào list Box để lấy dữ liệu cẩn sửa vào Form, sửa nội dung cần sửa và nhấn nút sửa dữ liệu.
- Không click vào vùng trống bên dưới list Box, vì không có dữ liệu Load vào Form sẽ bị lỗi, nhấn nút End để thoát khỏi lỗi.
anh ơi, em tạo 1 file data để lưu dữ liệu. em muốn thay đổi dữ liệu trên file form thì phải viết hàm ntn để mình tìm được dòng cần thay đổi trên file data ạ?Thêm code này vào UserForm xem:
Code viết đơn giản cho bạn dễ đọc, dễ sửaMã:Private Sub CommandButton1_Click() Dim i As Long, arr(1 To 4) i = ListBox1.ListIndex arr(1) = stt.Text: arr(2) = ten.Text arr(3) = ma.Text: arr(4) = kh.Text If i > -1 Then Sheet1.Range("vung").Offset(i).Resize(1).Value = arr End If End Sub Private Sub ListBox1_Click() Dim i As Long With Me.ListBox1 i = .ListIndex stt.Text = .List(i, 0) ten.Text = .List(i, 1) ma.Text = .List(i, 2) kh.Text = .List(i, 3) End With End Sub