Giải thích lỗi code

Liên hệ QC

buithanhlong

Thành viên hoạt động
Tham gia
8/6/10
Bài viết
176
Được thích
141
Chào các Bác! tôi có đoạn code sau:

Private Sub txtMa_Change()
With Sheet2.Range("A1").CurrentRegion.Resize(, 1)
Set fRng = .Find(txtMa.Text, , , xlWhole)
If fRng Is Nothing Then Set fRng = .Parent.Cells(65000, .Column).End(xlUp).Offset(1)


For i = 2 To 4
UserForm1.Controls("txt" & i) = fRng.Offset(, i).Value
Next
End With
End Sub

Nếu để như vậy thì chạy rất tốt, nhưng khi tôi thay txtMa bằng cboMa thì lại bị lỗi. Do yêu cầu công việc tôi muốn thay textbox bằng combobox. Vậy nhờ các Bác giải thích lỗi trên và chỉnh sửa giúp tôi . Trân trọng biết ơn
 
Chào các Bác! tôi có đoạn code sau:

Private Sub txtMa_Change()
With Sheet2.Range("A1").CurrentRegion.Resize(, 1)
Set fRng = .Find(txtMa.Text, , , xlWhole)
If fRng Is Nothing Then Set fRng = .Parent.Cells(65000, .Column).End(xlUp).Offset(1)


For i = 2 To 4
UserForm1.Controls("txt" & i) = fRng.Offset(, i).Value
Next
End With
End Sub

Nếu để như vậy thì chạy rất tốt, nhưng khi tôi thay txtMa bằng cboMa thì lại bị lỗi. Do yêu cầu công việc tôi muốn thay textbox bằng combobox. Vậy nhờ các Bác giải thích lỗi trên và chỉnh sửa giúp tôi . Trân trọng biết ơn

Bạn kiểm tra trên UserForm1 với TextBox có tên là txtMa, bạn xóa nó đi và thay bằng ComboBox với tên là cboMa, đồng thời thay cboMa (chữ màu đỏ) trong câu lệnh này thử xem.

Set fRng = .Find(txtMa.Text, , , xlWhole)

Sau khi thay cboMa vào đoạn code trên và chạy code, nếu code ở đoạn khác cũng bị lỗi chỗ txtMa, bạn xóa nó đi và thay bằng cboMa.

Hoặc có thể lỗi chỗ này.

UserForm1.Controls("txt" & i) = fRng.Offset(, i).Value

Thì bạn thay cbo vào, do không có File nên tôi đoán đại, hên thì trúng.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn be09 đã hồi âm, tôi gửi file lên bạn kiểm tra và xem giúp tôi nhé. Rất mong sự quan tâm giúp đỡ của be09 và các bạn trên diễn đàn. Trân trọng
 

File đính kèm

  • FORMthamkhaohoan thien.rar
    22.4 KB · Đọc: 12
Upvote 0
Cám ơn be09 đã hồi âm, tôi gửi file lên bạn kiểm tra và xem giúp tôi nhé. Rất mong sự quan tâm giúp đỡ của be09 và các bạn trên diễn đàn. Trân trọng

Bạn sử dụng code điều khiển không đúng, tôi đã sửa lại theo yêu cầu là chọn 1 loại trong ComboBox có tên là cboMa nó sẽ Load dữ liêu vào tất cả các Control.
 

File đính kèm

  • FORMthamkhaohoan thien.rar
    14.5 KB · Đọc: 15
Upvote 0
Chào be09 tôi chạy thử vẫn báo lỗi bạn à, bạn xem lại giúp tôi với nhé. Trân trọng cám ơn
 
Upvote 0
Chào be09 tôi chạy thử vẫn báo lỗi bạn à, bạn xem lại giúp tôi với nhé. Trân trọng cám ơn
Bạn thử code sau (so sánh code cũ của beo9 nhé)
[GPECODE=vb]Private Sub cbSave_Click() Dim iR As Long
iR = Sheets("Sheet1").Range("A1000").End(3).Offset(1, 0).Row
If Trim(Me.cboMa.Value) = "" Then
Me.cboMa.SetFocus
MsgBox "Ma khong duoc de trong!", vbCritical + vbOKOnly
Else
Set fRng = Sheet1.Range("A65500").End(xlUp)
fRng.Offset(1) = Me.cboMa.Value
For b = 1 To 6
fRng.Offset(1, b) = Me.Controls("txt" & b).Text
Next
End If
cboMa.Text = ""
Me.cboMa.SetFocusEnd Sub
[/GPECODE]
Còn trong code sự kiện Private Sub cboMa_Change()
thêm dòng lệnh On Error Resume Next
 
Upvote 0
Cám ơn viehoai tôi đã chỉnh sửa code theo ý của bạn nhưng vẫn chưa được, không biết tôi dùng office 2007 thì có liên quan gì đến nội dung này hay không?
Vấn đề ở chỗ nếu để txtMa thì chạy rất êm, nhưng khi đổi sang cboMa và đã thử rất nhiều code khác nhau nhưng vẫn bị lỗi. (Bạn lưu ý chạy thử nhập mã mới và chỉnh sửa dữ liệu mã cũ sẽ phát hiện lỗi).Rất mong bạn và mọi người quan tâm giúp đỡ. Trân trọng
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn viehoai tôi đã chỉnh sửa code theo ý của bạn nhưng vẫn chưa được, không biết tôi dùng office 2007 thì có liên quan gì đến nội dung này hay không?
Vấn đề ở chỗ nếu để txtMa thì chạy rất êm, nhưng khi đổi sang cboMa và đã thử rất nhiều code khác nhau nhưng vẫn bị lỗi. (Bạn lưu ý chạy thử nhập mã mới và chỉnh sửa dữ liệu mã cũ sẽ phát hiện lỗi).Rất mong bạn và mọi người quan tâm giúp đỡ. Trân trọng

Bạn xem lại File coi còn lỗi chỗ nào nữa không rồi tính tiếp.
 

File đính kèm

  • FORMthamkhaohoan thien.rar
    17 KB · Đọc: 3
Upvote 0
Chào be09 cám ơn bạn rất nhiều, về cơ bản là ổn rồi bạn à, nhưng vấn đề ở chỗ lại phải thêm 1 nút ghi dữ liệu mới, nếu chỉ cần 1 nút GHI mà vừa sửa vừa ghi mới được thì tốt hơn bạn à, tôi đang đi theo hướng đó (như ý kiến của viehoai thêm dòng lệnh On Error Resume Next ) và có vẻ chạy cũng tạm ổn, nhưng phải chạy thử xem đã, nếu mắc ở đâu lại nhờ bạn và mọi người giúp đỡ tiếp. Chúc bạn cùng gia đình luôn mạnh khỏe, hạnh phúc và có nhiều niềm vui. Trân trọng
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom