Lỗi " Sub or function not defined"

Liên hệ QC

xkibboy

Thành viên mới
Tham gia
7/9/11
Bài viết
7
Được thích
0
Chào a c
Xki muốn viết code để lặp lại trình Solver nhưng viết xong Code chạy hoài không được. Chỉ hiện lên lỗi "Sub or function not defined", mà ko biết sai chỗ nào. Mong a c góp ý giúp.
XKi có gởi file đính kém, các a c xem code trong Module 2 nhé. Cảm ơn nhiều.
Đây là code
Mã:
Sub toiuu()
        SolverAdd CellRef:="$N$16", Relation:=2, FormulaText:="1"
        SolverAdd CellRef:="$F$16:$M$16", Relation:=3, FormulaText:="0"
        SolverAdd CellRef:="$F$16:$M$16", Relation:=1, FormulaText:="1"
        SolverOk SetCell:="$O$16", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$16:$M$16"
       SolverSolve UserFinish:=True
End Sub

Public Sub lap()


    For i = 1 To 40
        Range("c") = -0.003 + i * 0.0005
        Solve
        Application.SendKeys ("{Enter}")
        .Cells(i, 1) = ActiveSheet.Range("c")
        .Cells(i, 2) = ActiveSheet.Range("mean")
        .Cells(i, 3) = ActiveSheet.Range("sigma")
        .Cells(i, 4) = ActiveSheet.Range("x1")
        .Cells(i, 5) = ActiveSheet.Range("x2")
        .Cells(i, 6) = ActiveSheet.Range("x3")
        .Cells(i, 7) = ActiveSheet.Range("x4")
        .Cells(i, 8) = ActiveSheet.Range("x5")
        .Cells(i, 9) = ActiveSheet.Range("x6")
        .Cells(i, 10) = ActiveSheet.Range("x7")
        .Cells(i, 11) = ActiveSheet.Range("x8")
        .Cells(i, 12) = ActiveSheet.Range("sum")
        .Cells(i, 13) = ActiveSheet.Range("theta")
        
        Next i
End Sub
 

File đính kèm

  • thunghiem.xlsx
    10.7 KB · Đọc: 13
Chỉnh sửa lần cuối bởi điều hành viên:
Chào a c
Xki muốn viết code để lặp lại trình Solver nhưng viết xong Code chạy hoài không được. Chỉ hiện lên lỗi "Sub or function not defined", mà ko biết sai chỗ nào. Mong a c góp ý giúp.
File của bạn chẳng có tí code nào
Tuy nhiên xin gợi ý: Có lẽ bạn chưa check mục SOLVER trong Tools\References

untitled.JPG
 
Upvote 0
Chào bạn,
Một tập tin Excel dạng "Excel Macro-Enabled Workbook" thì phần định dạng tập tin sẽ là *.xlsm
Chắc có lẻ bạn quên lưu dưới định dạng ở trên.

Lê Van Duyệt
 
Upvote 0
File của bạn chẳng có tí code nào
Tuy nhiên xin gợi ý: Có lẽ bạn chưa check mục SOLVER trong Tools\References

View attachment 74786

Em cũng đang gặp vấn đề tương tự như thế này.
Nếu là Excel 2010 thì em phải làm thế nào ạ?

Anh có tham khảo giúp em đoạn code bên dưới:

Private Sub CommandButton1_Click()

Dim r, begin, last
Mrgbox "Please input data area to filter blank rows."
begin = InputBox("Begining Row: ")
last = InputBox("Ending Row: ")
For r = last To begin Step -1
If Cells(r, "F") = "" Then
Rows(r).Delete
End If
Next
End Sub
 
Upvote 0
Em cũng đang gặp vấn đề tương tự như thế này.
Nếu là Excel 2010 thì em phải làm thế nào ạ?

Anh có tham khảo giúp em đoạn code bên dưới:

Private Sub CommandButton1_Click()

Dim r, begin, last
Mrgbox "Please input data area to filter blank rows."
begin = InputBox("Begining Row: ")
last = InputBox("Ending Row: ")
For r = last To begin Step -1
If Cells(r, "F") = "" Then
Rows(r).Delete
End If
Next
End Sub
Chắc là sai chổ màu đỏ rồi ---> Sửa lại thành Msgbox thử xem
 
Upvote 0
các anh cho hỏi em bị lỗi như thế này, giúp em với.!

Untitled.jpg
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    22.8 KB · Đọc: 94
Upvote 0
[thongbao]các anh cho hỏi em bị lỗi như thế này, giúp em với.![/thongbao]

Nhìn muốn toét mắt mà thấy chi đâu!

Bạn chép Code ở file & đưa lên diễn đàn với chức năng
PHP:
 . . .[/ php]
Bạn sẽ được cộng đồng giúp ngay tấp lự!
 
Upvote 0
MÌNH THỬ CHẠY MÀ BÁO LỖI TÔ VÀNG SUB. BẠN NÀO GIÚP MÌNH VỚI. MÌNH CÁM ƠN.
 

File đính kèm

  • SO_CHI_TIET_CAC_TAI_KHOAN 01.2017-12.2018.xlsm
    2.5 MB · Đọc: 16
Upvote 0
MÌNH THỬ CHẠY MÀ BÁO LỖI TÔ VÀNG SUB. BẠN NÀO GIÚP MÌNH VỚI. MÌNH CÁM ƠN.
Rõ ràng nó bôi đen dòng "Call TieuDe" rồi thông báo cụ thể thế mà còn hỏi. Bó tay. :D

Bạn gọi ông A đi cầy mà tìm cả làng không có ông A nào thì là lỗi gì?

Bạn thử bật đèn pin rồi tìm TieuDe nó ở đâu. Nếu không tìm thấy thì hiểu "Sub or function not defined" nó là cái gì. Nếu muốn dịch sang tiếng Việt thì gú gồ thôi.
 
Upvote 0
Mình ko rành về VBA mà đang cần gấp tách sheet để thanh tra thuế nên ko biết lỗi do đâu. hihi
 
Upvote 0
Mình ko rành về VBA mà đang cần gấp tách sheet để thanh tra thuế nên ko biết lỗi do đâu. hihi
"Sub or Function not defined"
Sub = Xấp
Function = phần xong
defined = đi phải
===> xấp đủ phần xong (vào phong bì), thì phải đi đưa thanh tra thuế. Hết.
 
Upvote 0
Bạn Chép macro này thêm vô sau macro XoaSheet là xong bước 1;
PHP:
Sub TieuDe()
 MsgBox "Có Thê Giúp Gì Cho Ban?", , "GPE.COM Xin Thông Báo"
End Sub

Sang tiếp bước hai: Đi mua ly cà phê & cho macro chạy & vừa nhâm nhi vừa làm theo những gì macro chỉ bảo:
Chúc thành công mĩ mãn!
 
Upvote 0
THÌ MÌNH CŨNG CHỈ ĐANG NHỜ HỎI LỖI PHẦN MÌNH ĐANG BỊ LỖI TRONG FILE MÌNH LÀM THÔI MÀ BẠN. ĐÂU CÓ HỎI J KHÁC ĐÂU?
Không được viết hoa cả câu, cả bài như thế.

Đừng bắt người khác phân tích code và đoán mò là mình cần làm những gì. Ta không bàn về độ khó /dễ của việc đoán mò. Ta bàn về nguyên tắc. Nguyên tắc là những gì mình có thể nói thì đừng bắt người khác phải đoán mò.

Về TieuDe thì có thể đoán là nó sẽ làm gì đấy. Tôi đoán mò không biết đúng không nhưng hãy làm như sau:

1. Xóa dòng Call TieuDe -> chạy code -> kiểm tra kết quả xem có thiếu / thừa gì không.

2. THAY dòng Call TieuDe BẰNG 3 dòng
Mã:
.Range("B1:B2").Copy ActiveSheet.Range("B1:B2")
ActiveSheet.Range("B1:J1").Merge
ActiveSheet.Range("B2:J2").Merge
-> chạy code.

So sánh kết quả 1 và 2 để xem tôi đoán mò có đúng không.

Lưu ý:
1. Hãy khai báo tường minh, đừng nên có thói quen xấu. Tức thêm ở đầu, sau dòng Sub TRICH
Mã:
Dim cls As Range
2. Chọn Tools -> Options -> thẻ Editor -> chọn "Require Variable Declaration" -> OK
Từ lúc này trở đi VBE luôn thêm ở đầu mỗi Module dòng "Option Explicit". Khi quên khai báo tường minh thì VBE sẽ gào lên để nhắc nhở: "Variable not defined"
 
Upvote 0
& khuyên với chủ bài đăng rằng, hết sức cẩn thận khi xài câu lệnh
On Error Resume Next
 
Upvote 0
...Đừng bắt người khác phân tích code và đoán mò là mình cần làm những gì. Ta không bàn về độ khó /dễ của việc đoán mò. Ta bàn về nguyên tắc. Nguyên tắc là những gì mình có thể nói thì đừng bắt người khác phải đoán mò.
...
Quen rồi mà bác. Bàn tay năm ngón dùng để chỉ chứ đâu phải để gõ (trừ trường hợp trẻ tuổi, hai ngón cái dùng để bấm phôn)
Diễn đàn này vẫn xảy ra cái câu "sếp quăng cho em một mớ, bắt làm mà không giải thích gì cả".
 
Upvote 0
Thầy ơi, xem giúp em tại sao chạy cod thì excel báo lỗi "sub and fuction not defined" và sửa lỗi giúp em với ạ.
Em cảm ơn!
 

File đính kèm

  • QL KHO FT t05.20.xlsm
    280.3 KB · Đọc: 9
Upvote 0
Web KT

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

Back
Top Bottom