Code chạy giữa chừng "ĐUỐI SỨC" tự nghỉ (1 người xem)

Liên hệ QC

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

langtuchungtinh360

Thành viên đã dừng hoạt động
Tham gia
7/10/13
Bài viết
1,062
Được thích
334
Mấy bác cho em hỏi
em có viết 1 add ins thế này
Khi nhấn vào Tạo mới trên Ribbon thì câu lệnh thực thi không hết thì đã tự kết thúc
Mã:
Call NTNBvsNTNBHT
Call YCNTvsYCNTHT
Call NTCVvsNTHTCV
Call NTVK
Call VSKN
Call NTVL
Call TCBT
Call MTN
Call KTCL
Call NTVLDVvsNTCTvsNTBTvsNTTC
cụ thể cái đống bên trên chỉ chạy được tới gần khúc này "Call NTVL" chứ không chạy được đến hết chỗ này "Call NTVLDVvsNTCTvsNTBTvsNTTC"
code trong Module "aTaomoi" với "aModule2"
cho em hỏi lý do tại sao lại chạy giữa chừng lại "chết máy" như thế và cách khắc phục
 

File đính kèm

em đã tìm được lý do rồi
ra là do
On error resume next
với tên sheet bị sai
 
Upvote 0
Công trình của bạn quả là đồ sộ luôn, nhìn fát khiếp!

em đã tìm được lý do rồi; ra là do:
On error resume next
với tên sheet bị sai

Mình chỉ xin góp í nhỏ ơới bạn:
Để dễ quản lí các câu lệnh, ta nên cho nó hiện hoàn toàn trên trang màn hình, bằng cách ngắt dòng lệnh xuống hàng; Điều này bạn đã biết làm nhưng chưa làm mà thôi;

Mình lấy ví dụ 1 thủ tục, mà như mình mình sẽ làm là vầy:
PHP:
'BUOC 4: DIEN DU LIEU VAO CAC BIEN BAN'
Sub NTNBvsNTNBHT()
 TieuDeDCTN = "PHI" & ChrW(7870) & "U THEO D" & ChrW(213) & "I " & ChrW(272) & ChrW(211)        '*'
 TieuDeDCDT = TieuDeDCTN & "NG C" & ChrW(7884) & "C " & ChrW(272) & ChrW(7840) & "I TR" & ChrW(192)
 TieuDeDCTN = TieuDeDTTN & "NG C" & ChrW(7884) & "C TH" & ChrW(205) & " NGHI" & ChrW(7878) & "M"
'1.   NGHIEM THU NOI BO va 15. NGHIEM THU NOI BO HOÀN THÀNH:'
For I = 1 To 2
 TieuDeNTNBHT = "BI" & ChrW(202) & "N B" & ChrW(7842) & "N NGHI" & ChrW(7878) & "M THU N" & ChrW(7896) & "I B" & ChrW(7896) & ChrW(10)  '*'                                                                                                                                      '*'
   TieuDeNTNB = TieuDeNTNB & "C" & ChrW(212) & "NG VI" & ChrW(7878) & "C X" & ChrW(194) & "Y D" & ChrW(7920) & "NG"
 TieuDeNTNBHT = TieuDeNTNBHT & "HO" & ChrW(192) & "NH TH" & ChrW(192) & "NH B" & ChrW(7896) & " PH" & ChrW(7852) & "N C" & ChrW(212) & _
    "NG TR" & ChrW(204) & "NH X" & ChrW(194) & "Y D" & ChrW(7920) & "NG" & ChrW(10) & "GIAI " & ChrW(272) & "O" & ChrW(7840) & _
        "N THI C" & ChrW(212) & "NG X" & ChrW(194) & "Y D" & ChrW(7920) & "NG"

If I = 1 Then
    SheetName = "NTNB":                             TieuDe = TieuDeNTNB
Else
    SheetName = "NTNBHT":                           TieuDe = TieuDeNTNBHT
End If
With Sheets(SheetName)
    .Columns("A:W").ColumnWidth = 2.56
    .Range("A1").FormulaR1C1 = "=UPPER(CTy)&""" & Chr(10) & "----o0o----"""
    .Range("L1").FormulaR1C1 = "C" & ChrW(7896) & "NG H" & ChrW(210) & "A X" & ChrW(195) & " H" & _
        ChrW(7896) & "I CH" & ChrW(7910) & " NGH" & ChrW(296) & "A VI" & ChrW(7878) & "T NAM"
    .Range("L2").FormulaR1C1 = ChrW(272) & ChrW(7897) & "c l" & ChrW(7853) & "p- T" & ChrW(7921) & _
        " do- H" & ChrW(7841) & "nh ph" & ChrW(250) & "c"
    .Range("A3").FormulaR1C1 = TieuDe
    .Range("A4").FormulaR1C1 = "=" & """" & "S" & ChrW(7889) & ": ……../NTNB/" & """" & "&KyHieu"
    .Range("A6").FormulaR1C1 = "=CongTrinh"
    .Range("A7").FormulaR1C1 = "=GoiThau"
    .Range("A8").FormulaR1C1 = "=HangMuc"
    .Range("A10").FormulaR1C1 = "=""1. ""&doituong"
    .Range("A11").FormulaR1C1 = "2. Th" & ChrW(224) & "nh ph" & ChrW(7847) & "n tham gia nghi" & ChrW(7879) & "m thu:"
    .Range("A12").FormulaR1C1 = "• Ban ch" & ChrW(7881) & " huy c" & ChrW(244) & "ng tr" & ChrW(236) & "nh:"
    .Range("A13").FormulaR1C1 = "=CBGS1"
    .Range("L13").FormulaR1C1 = "=CVCBGS1"
    .Range("A14").FormulaR1C1 = "• " & ChrW(272) & ChrW(7897) & "i thi c" & ChrW(244) & "ng x" & ChrW(226) & "y d" & ChrW(7921) & "ng:"
    .Range("A15").FormulaR1C1 = "=CBKT1"
    .Range("L15").FormulaR1C1 = "=CVCBKT1"
    .Range("A16").FormulaR1C1 = "3. Th" & ChrW(7901) & "i gian nghi" & ChrW(7879) & "m thu:"
    .Range("A17").FormulaR1C1 = "B" & ChrW(7855) & "t " & ChrW(273) & ChrW(7847) & "u ……….gi" & ChrW(7901) & " ……….ph" & _
        ChrW(250) & "t,ng" & ChrW(224) & "y  ……….th" & ChrW(225) & "ng ……….n" & ChrW(259) & "m 20 ………."
    .Range("A18").FormulaR1C1 = "K" & ChrW(7871) & "t th" & ChrW(250) & "c ……….gi" & ChrW(7901) & " ……….ph" & ChrW(250) & _
        "t,ng" & ChrW(224) & "y  ……….th" & ChrW(225) & "ng ……….n" & ChrW(259) & "m 20 ………."
    .Range("A19").FormulaR1C1 = "4. " & ChrW(272) & ChrW(225) & "nh gi" & ChrW(225) & " c" & ChrW(244) & "ng vi" & _
        ChrW(7879) & "c " & ChrW(273) & ChrW(227) & " th" & ChrW(7921) & "c hi" & ChrW(7879) & "n"
    .Range("A22").FormulaR1C1 = "a. T" & ChrW(224) & "i li" & ChrW(7879) & "u c" & ChrW(259) & "n c" & ChrW(7913) & _
        " nghi" & ChrW(7879) & "m thu:"
1    .Range("A23").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C3),"""",TAILIEU!R1C3)"
    .Range("A24").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C4),"""",TAILIEU!R1C4)"
    .Range("A25").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C5),"""",TAILIEU!R1C5)"
    .Range("A26").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C6),"""",TAILIEU!R1C6)"
    .Range("A27").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C7),"""",TAILIEU!R1C7)"
    .Range("A28").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C8),"""",TAILIEU!R1C8)"
    .Range("A29").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C9),"""",TAILIEU!R1C9)"
    .Range("A30").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C10),"""",TAILIEU!R1C10)"
    .Range("A31").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C11),"""",TAILIEU!R1C11)"
    .Range("A32").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C12),"""",TAILIEU!R1C12)"
    .Range("A33").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C13),"""",TAILIEU!R1C13)"
    .Range("A34").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C14),"""",TAILIEU!R1C14)"
    .Range("A35").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C15),"""",TAILIEU!R1C15)"
    .Range("A36").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C16),"""",TAILIEU!R1C16)"
    .Range("A37").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C17),"""",TAILIEU!R1C17)"
    .Range("A38").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C18),"""",TAILIEU!R1C18)"
    .Range("A39").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C19),"""",TAILIEU!R1C19)"
    .Range("A40").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C20),"""",TAILIEU!R1C20)"
    .Range("A41").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C21),"""",TAILIEU!R1C21)"
    .Range("A42").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C22),"""",TAILIEU!R1C22)"
    .Range("A43").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C23),"""",TAILIEU!R1C23)"
    .Range("A44").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C24),"""",TAILIEU!R1C24)"
    .Range("A45").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C25),"""",TAILIEU!R1C25)"
    .Range("A46").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C26),"""",TAILIEU!R1C26)"
    .Range("A47").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C27),"""",TAILIEU!R1C27)"
    .Range("A48").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C28),"""",TAILIEU!R1C28)"
    .Range("A49").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C29),"""",TAILIEU!R1C29)"
9    .Range("A50").FormulaR1C1 = "=IF(ISERROR(TAILIEU!R1C30),"""",TAILIEU!R1C30)"
    .Range("A51").FormulaR1C1 = _
       "b.V" & ChrW(7873) & " ch" & ChrW(7845) & "t l" & ChrW(432) & ChrW(7907) & "ng c" & ChrW(244) & "ng vi" & ChrW(7879) & _
        "c x" & ChrW(226) & "y d" & ChrW(7921) & "ng: " & ChrW(10) & ChrW(272) & ChrW(7841) & "t theo y" & ChrW(234) & "u c" & _
            ChrW(7847) & "u b" & ChrW(7843) & "n v" & ChrW(7869) & " thi" & ChrW(7871) & "t k" & ChrW(7871) & " v" & ChrW(224) & _
                " c" & ChrW(225) & "c ti" & ChrW(234) & "u chu" & ChrW(7849) & "n."
    .Range("A52").FormulaR1C1 = "c. C" & ChrW(225) & "c " & ChrW(253) & " ki" & ChrW(7871) & "n kh" & ChrW(225) & "c:"
    .Range("A53").FormulaR1C1 = "5. K" & ChrW(7871) & "t lu" & ChrW(7853) & "n:"
    .Range("A54").FormulaR1C1 = _
        ChrW(272) & ChrW(7891) & "ng " & ChrW(253) & " nghi" & ChrW(7879) & "m thu " & ChrW(273) & ChrW(7875) & " tri" & _
            ChrW(7875) & "n khai c" & ChrW(225) & "c c" & ChrW(244) & "ng vi" & ChrW(7879) & "c ti" & ChrW(7871) & "p theo"
    .Range("F55").FormulaR1C1 = "BAN CH" & ChrW(7880) & " HUY C" & ChrW(212) & "NG TR" & ChrW(204) & "NH"
    .Range("P55").FormulaR1C1 = ChrW(272) & ChrW(7840) & "I DI" & ChrW(7878) & "N " & _
        ChrW(272) & ChrW(7896) & "I THI C" & ChrW(212) & "NG"
    .Range("F61").FormulaR1C1 = "=KTCHT"
    .Range("P61").FormulaR1C1 = "=KTDDDVTC"
    With Sheets(SheetName).Range("A1:J2,K1:W1,K2:W2,A3:W3,A4:W4,A6:W6,A7:W7,A8:W8,A10:W10,A51:W51")
        .HorizontalAlignment = xlCenter
        .MergeCells = True:              .WrapText = True
    End With
    Sheets(SheetName).Range("A6:A10,A51").HorizontalAlignment = xlLeft
End With
Sheets(SheetName).Select
MsgBox "Da Xong":                  SheetName = ""
Next I
End Sub

Thêm nữa: Bạn xét xem, các dòng lệnh mình đánh số 1..9 có thể đưa vô vòng lặp được không?
Mình nghỉ là được đó!
 
Upvote 0
Mình chỉ xin góp í nhỏ ơới bạn:
Để dễ quản lí các câu lệnh, ta nên cho nó hiện hoàn toàn trên trang màn hình, bằng cách ngắt dòng lệnh xuống hàng; Điều này bạn đã biết làm nhưng chưa làm mà thôi;

Mình lấy ví dụ 1 thủ tục, mà như mình mình sẽ làm là vầy:
..................

Thêm nữa: Bạn xét xem, các dòng lệnh mình đánh số 1..9 có thể đưa vô vòng lặp được không?
Mình nghỉ là được đó!
em cảm ơn góp ý của thầy. em chưa rành về tham chiếu R1C1 nên cũng chưa biết cho vô vòng lặp thế nào.+-+-+-+
sáng ngủ dậy thì nghĩ ra cách mới là cho vào mảng rồi điền vào có lẽ nhanh hơn.--=0
để nghiêm cứu tiếp**~**
giờ còn kẹt vụ tự động chèn module với code vào module chưa làm được +-+-+-+
 
Upvote 0
em cảm ơn góp ý của thầy. em chưa rành về tham chiếu R1C1 nên cũng chưa biết cho vô vòng lặp thế nào.+-+-+-+
sáng ngủ dậy thì nghĩ ra cách mới là cho vào mảng rồi điền vào có lẽ nhanh hơn.--=0
để nghiêm cứu tiếp**~**
giờ còn kẹt vụ tự động chèn module với code vào module chưa làm được +-+-+-+
Cái dòng màu đỏ hôm ở thớt khác mình cho link trên GPE rồi mà vào đó nghiên cứu xem
 
Upvote 0
Cái dòng màu đỏ hôm ở thớt khác mình cho link trên GPE rồi mà vào đó nghiên cứu xem
Em có vào xem rồi. Nhưng không chèn được. Nó cứ báo lỗi. Em đã chọn vào VBA...... 5.3 rồi nhưng vẫn lỗi.
Nếu làm đc thì chỉ em cách tự kích hoạt dòng đó luôn đi ạ.
 
Upvote 0
Em có vào xem rồi. Nhưng không chèn được. Nó cứ báo lỗi. Em đã chọn vào VBA...... 5.3 rồi nhưng vẫn lỗi.
Nếu làm đc thì chỉ em cách tự kích hoạt dòng đó luôn đi ạ.
Thử Ví dụ sau chép code sau vào Module tải File Close.txt về để trong cùng Folde với File Excel
( nếu muốn khác Folder thì sửa lại đường dẫn) xong chạy sub ImportModule
Code mình ST GPE
PHP:
Sub ImportModule()
    Dim Txtfile As String
    Txtfile = ThisWorkbook.Path & "\Close.txt" ''Cung Folder
    ExecuteExcel4Macro ("VBA.INSERT.FILE(""" & Txtfile & """)")
End Sub
 

File đính kèm

Upvote 0
Thử Ví dụ sau chép code sau vào Module tải File Close.txt về để trong cùng Folde với File Excel
( nếu muốn khác Folder thì sửa lại đường dẫn) xong chạy sub ImportModule
Code mình ST GPE
PHP:
Sub ImportModule()
    Dim Txtfile As String
    Txtfile = ThisWorkbook.Path & "\Close.txt" ''Cung Folder
    ExecuteExcel4Macro ("VBA.INSERT.FILE(""" & Txtfile & """)")
End Sub
cảm ơn bác.
vì chủ đề này không tiện nói nên em xin chuyển qua chủ đề này
 
Upvote 0
Web KT

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

Back
Top Bottom