Sữa lỗi: Runtime error '424'

Liên hệ QC

spacemanforever

Thành viên hoạt động
Tham gia
8/10/08
Bài viết
113
Được thích
71
Dear GPE!
Nội dung:
-em có 4 checkbox (checkbox1 - Date, Checkbox2 - A No., Checkbox3 - B No., Checkbox4 - C No.)
-Mỗi checkbox gồm 2 ô điều kiện (From .., to ...) điều kiên From <= To.
Lỗi phát sinh:
Khi tiến hàng cho chạy code:
PHP:
Sub test()
Dim i, kq
d1 = CDbl([H3].Value)
d2 = CDbl([J3].Value)
i = 0
If CheckBox1.Value = True Then
 If d1 > d2 Then
              kq = kq & "Date error" & Chr(10)
              i = i + 1
 End If
End If
If CheckBox2.Value = True Then
 If [H5].Value > [J5].Value Then
                                 kq = kq & "A No. error" & Chr(10)
                                 i = i + 1
 End If
End If
If CheckBox3.Value = True Then
 If [H7].Value > [J7].Value Then
                                 kq = kq & "B No. error" & Chr(10)
                                 i = i + 1
 End If
End If
If CheckBox4.Value = True Then
 If [H9].Value > [J9].Value Then
                                 kq = kq & "C No. error" & Chr(10)
                                 i = i + 1
 End If
End If
'Report
If i <> 0 Then MsgBox kq & vbNewLine & " Please check it again"
End Sub

Thì bị báo lỗi RUNTIME ERROR '424': OBJECT REQUIRED.

Anh chị hỗ trợ giúp em nhé.
Thanks--=0
 

File đính kèm

  • BC - Copy.rar
    21.2 KB · Đọc: 74
OK, đúng rồi bạn. Nhưng lại sảy ra lỗi runtime error 3001 như trên với dòng lệnh:
RsCV.Open "SELECT MADG, TENCV FROM [DonGia]", DbConDG, adOpenKeyset, adLockPessimistic.
bạn có thể sửa giúp mình?
Phần còn lại bạn tự chỉnh nốt.
 

File đính kèm

  • MauDuToanXD.xls
    54 KB · Đọc: 8
Upvote 0
Trong Win64, rất thường chuỗi Provider = Microsoft.Jet.OLEDB.4.0 sẽ không chạy được nhé, do MS không support cho Access DLL 64bit.
 
Upvote 0
Bị báo lỗi RUNTIME ERROR '1004': Application-defined or object-defined error
Anh chị hổ trợ giúp em với.
 

File đính kèm

  • sheet.xls
    41.5 KB · Đọc: 6
Upvote 0
Bị báo lỗi RUNTIME ERROR '1004': Application-defined or object-defined error
Anh chị hổ trợ giúp em với.
Mã:
Private Sub TextBox1_Change()
  If Len(TextBox1.Value) Then
    Range("A3", Range("E" & Rows.Count).End(xlUp)).AutoFilter Field:=2, Criteria1:="*" & TextBox1.Value & "*"
  Else
    Sheets("Sheet2").AutoFilterMode = False
    If Len(TextBox2.Value) Then
      Range("A3", Range("E" & Rows.Count).End(xlUp)).AutoFilter Field:=4, Criteria1:="*" & TextBox2.Value & "*"
    End If
  End If
End Sub
Private Sub TextBox2_Change()
  If Len(TextBox2.Value) Then
    Range("A3", Range("E" & Rows.Count).End(xlUp)).AutoFilter Field:=4, Criteria1:="*" & TextBox2.Value & "*"
  Else
    Sheets("Sheet2").AutoFilterMode = False
    If Len(TextBox1.Value) Then
      Range("A3", Range("E" & Rows.Count).End(xlUp)).AutoFilter Field:=2, Criteria1:="*" & TextBox1.Value & "*"
    End If
  End If
End Sub
 
Upvote 0
Cảm ơn Anh , đã thực hiện được file rồi .
 
Upvote 0
Mọi người giúp em với
Em in mà nó bán lỗi
-------------
Sub printF()
Dim k As Long, printFrom As Long, printTo As Long
printFrom = Sheet2.Range("k13").Value
printTo = Sheet2.Range("k14").Value
For k = printFrom To printTo
Sheet2.Range("k11").Value = k
Sheet2.PrintOut Preview:=False
Next k
End Sub
 
Upvote 0
Nó BÁN lỗi cho ai? Lỗi lầm ra làm sao? Giá bao nhiêu?

Mã:
Sub printF()
Dim k As Long, printFrom As Long, printTo As Long
printFrom = val(Sheet2.Range("k13").Value)
printTo = val(Sheet2.Range("k14").Value)
If printFrom <= printTo Then
For k = printFrom To printTo
    Sheet2.Range("K11").Value = k
    Sheet2.PrintOut
Next k
End If
End Sub
 
Upvote 0
Nó BÁN lỗi cho ai? Lỗi lầm ra làm sao? Giá bao nhiêu?

Mã:
Sub printF()
Dim k As Long, printFrom As Long, printTo As Long
printFrom = val(Sheet2.Range("k13").Value)
printTo = val(Sheet2.Range("k14").Value)
If printFrom <= printTo Then
For k = printFrom To printTo
    Sheet2.Range("K11").Value = k
    Sheet2.PrintOut
Next k
End If
End Sub
1. printFr là đủ hiểu rồi, không cần phải đầy đủ từ 'From' (trong môi trường VBE, font Courier sẽ cho thấy các từ có số ký tự bằng nhau sẽ sắp ngay hàng nhau)
2. For k = val(Sheet2.Range("k13").Value) To val(Sheet2.Range("k14").Value)
Nếu Fr > To thì tự động vòng lặp không chạy, khong cần phải xét trước
(bình thường thì i là chỉ số đếm vòng lặp. Khi ngừoi có kinh nghiệm đọc code thấy bạn dùng k thì ngừoi ta sẽ đoán bạn cố tình dùng k với lý do gì đó)

Chú: tôi thấy bạn thích học viết code thì tôi chỉ dẫn các style viết code. Nếu bạn phật ý thì nói thẳng ra, tôi sẽ không làm nữa.
 
Upvote 0
Chú: tôi thấy bạn thích học viết code thì tôi chỉ dẫn các style viết code. Nếu bạn phật ý thì nói thẳng ra, tôi sẽ không làm nữa.
Chắc chắn là không (phật ý) rồi anh.
1. printFr là đủ hiểu rồi, không cần phải đầy đủ từ 'From' (trong môi trường VBE, font Courier sẽ cho thấy các từ có số ký tự bằng nhau sẽ sắp ngay hàng nhau)
2. For k = val(Sheet2.Range("k13").Value) To val(Sheet2.Range("k14").Value)
Nếu Fr >= To thì tự động vòng lặp không chạy, khong cần phải xét trước
(bình thường thì i là chỉ số đếm vòng lặp. Khi ngừoi có kinh nghiệm đọc code thấy bạn dùng k thì ngừoi ta sẽ đoán bạn cố tình dùng k với lý do gì đó)
Em chép lại nội dung rồi thêm hàm Val(), chứ không có ý định chỉnh lại bài.
Chỗ xét Fr >= To đúng là em không để ý vòng lặp bỏ qua. :)
Em nghi ngờ (đoán) tại ô K13 và K14 là một hàm có khả năng trả về lỗi nhưng chỉ lướt qua bài rồi thêm hàm Val().
 
Upvote 0
Chắc chắn là không (phật ý) rồi anh.

Em chép lại nội dung rồi thêm hàm Val(), chứ không có ý định chỉnh lại bài.
Chỗ xét Fr >= To đúng là em không để ý vòng lặp bỏ qua. :)
Em nghi ngờ (đoán) tại ô K13 và K14 là một hàm có khả năng trả về lỗi nhưng chỉ lướt qua bài rồi thêm hàm Val().
-------
em mới học nên không biết sửa làm sao
anh có thể giúp em chỉnh lại cho nó chạy được không ạ
em cám ơn nhiều ạ
Bài đã được tự động gộp:

1. printFr là đủ hiểu rồi, không cần phải đầy đủ từ 'From' (trong môi trường VBE, font Courier sẽ cho thấy các từ có số ký tự bằng nhau sẽ sắp ngay hàng nhau)
2. For k = val(Sheet2.Range("k13").Value) To val(Sheet2.Range("k14").Value)
Nếu Fr > To thì tự động vòng lặp không chạy, khong cần phải xét trước
(bình thường thì i là chỉ số đếm vòng lặp. Khi ngừoi có kinh nghiệm đọc code thấy bạn dùng k thì ngừoi ta sẽ đoán bạn cố tình dùng k với lý do gì đó)

Chú: tôi thấy bạn thích học viết code thì tôi chỉ dẫn các style viết code. Nếu bạn phật ý thì nói thẳng ra, tôi sẽ không làm nữa.
cám ơn bro nhiều bro góp í như vậy là quá tốt rồi sao phật ý được
 
Upvote 0
Upvote 0
Mình làm như này mà bị báo lỗi
Các cao nhân giúp đỡ với ạ. Chỗ mình bôi đậm ý

Sub Sapxepdulieu()
'
' Sapxepdulieu Macro
' Sap xep du lieu theo thu tu cho truoc
'

'
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 10).Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 3).Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 2).Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 1).Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 6).Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Total_Farm").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 4).Range("A1:A290"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Total_Farm").Sort
.SetRange ActiveCell.Offset(-1, 0).Range("A1:N291")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Sub Luudulieuvaobang()
' 1. Luu du lieu vao bang
'1.1. Tim dong cuoi cua bang data
Dim DongCuoi As Long
DongCuoi = Total_Farm.Cells(Rows.Count, 1).End(xlUp).Row + 1
'1.2. Luu du lieu vao dong cuoi
Total_Farm.Range("C" & DongCuoi & ":" & "P" & DongCuoi).Value = Total_Farm.Range("C7: P7").Value
' 2. Xoa du lieu o nhap vao
Total_Farm.Range("C7:K7").ClearContents
' 3. Sap xep du lieu trong bang
Call Sapxepdulieu
'Thong bao hoan thanh
MsgBox "Da xong, nen kiem tra lai"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
xin chào tất cả mọi người
các cao nhân giúp em với
em đang học làm 1 form nhập dữ liệu
ấn chạy nó báo lỗi 424
các cao nhân sửa file giúp em với
file đính kèm bên dưới ah .
thanks
 

File đính kèm

  • bang danh gia.xlsm
    24.2 KB · Đọc: 2
Upvote 0
PHP:
Private Sub UserForm_Initialize()
    Dim setting As Variant
    Dim index As Long
    Dim label As MSForms.label
    Dim textbox As MSForms.textbox
On Error GoTo LoiCT
    currentTopPos = 20
    With Sheets(SHEET_SETTINGS)
        settings = .Range("A2:D2" & getLR(.Name, "D")).Value
        
        For index = LBound(settings, 1) To UBound(settings, 1)
            With Me
                Set label = .Controls.Add("Forms.label.1")
                With label
                    .Left = UI_LEFT
                    .Top = currentTopPos
                    .Width = settings(index, 4)
                    .Height = UI_LINE_HEIGHT
                    currentTopPos = .Top + .Height + UI_GAP
                    .Caption = settings(index, 2)
                End With
                Set textbox = .Controls.Add("Forms.textbox.1")
                With textbox
                    .Name = settings(index, 1)
                    .Left = UI_LEFT
                    .Top = currentTopPos
                    .Width = settings(index, 4)
                    .Height = settings(index, 3) * UI_LINE_HEIGHT
                    If settings(index, 3) > 1 Then .MultiLine = True
                    currentTopPos = .Top + .Height + UI_GAP
         End With
         .Height = 300
         .Width = 380
         .Caption = "bangdanhgia"
1        End With
     Next index
3   End With
    With cmdSaveData
5    .Top = currentTopPos
6    .Left = 310 - cmdSvaeData.Width
7    End With
Err_:               Exit Sub
LoiCT:
    If Err = 424 Then
        MsgBox Erl, , "Dòng Lênh Dang Sai:"
        Resume Next
    Else
        Resume Err_
    End If
End Sub
 
Upvote 0
[bác kiểm tra giúp em với, em viết đoạn code bên dưới bị báo lỗi 424 dòng, objsheet.cells(irow,6)=1

Sub change_quota()

Dim V_Material, V_Component, V_ECNnumber, V_Quota
Dim lineitems As Long


'Set the line status to "processing..."

objSheet.Cells(iRow, 6) = 1

'Material
If objSheet.Cells(iRow, 8) <> "" Then
V_Material = objSheet.Cells(iRow, 8)
Else
V_Material = "xxxxxx"
End If

'Component
If objSheet.Cells(iRow, 9) <> "" Then
V_Component = objSheet.Cells(iRow, 9)
Else
V_Component = ""
End If

'ECN Change
If objSheet.Cells(iRow, 5) <> "" Then
V_ECNnumber = objSheet.Cells(iRow, 5)
Else
V_ECNnumber = ""
End If

'Quota
If objSheet.Cells(iRow, 11) <> "" Then
V_Quota = objSheet.Cells(iRow, 11)
Else
V_Quota = ""
End If
 
Upvote 0
Web KT
Back
Top Bottom