Chuyên mục xử lý, gỡ rối code VBA

Liên hệ QC
Status
Không mở trả lời sau này.

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,930
PHP:
 If Dic.Exists(sArr(I, 4)) Then
            Rws = Dic.Item(sArr(I, 4))
            For J = 6 To 9
                If tArr(Rws, J) > 0 Then dArr(K, J) = tArr(Rws, J)
            Next J
            For J = 7 To 16
                If tArr(Rws, J) > 0 Then dArr(K, J + 1) = tArr(Rws, J)
            Next J
        End If

Vâng gần đúng rồi anh ơi.
Anh ơi đặt trường hợp các Selecct case cũng có kết quả thì sao ạ? Ví dụ ở Select Case P ra kết quả là 1 (bằng cách thử điền P vào cột K8) như vậy thì kết quả em cần là 1.7. Em thử viết lại là. Vì ở sheet nghỉ lẻ chỉ là nghỉ nửa buổi hay gì đó cần cộng thêm vào, còn cái chính trong sheet BCC nếu nghỉ nguyên ngày ví dụ Phép thì em điền P. Cái này Select case của anh đã tính đến. Nhưng nó không cộng tổng cùng với nghỉ lẻ mà nếu nghỉ lẻ thì sẽ chỉ lấy của nghỉ lẻ bỏ qua cái select case đã tính kia.
If tArr(Rws, J) > 0 Then dArr(K, J) =dArr(K, J)+ tArr(Rws, J) thì có đúng không?

Nếu đúng thì chỗ code:
If tArr(Rws, J) > 0 Then dArr(K, J + 1) = tArr(Rws, J) em phải sửa tiếp như nào ạ??.
Hổng biết luôn. Code cũ chạy ra kết quả cột nào, thế nào? Bbây giờ muốn cột nào có kết quả thế nào?,
Đã nói là chuyện của bạn chỉ bạn hiểu, người không trong ngành viết xong là "xóa bộ nhớ" luôn rồi.
 
Upvote 0
Vâng em mô tả lại nhé. Tại Sheet BCC có các ngày nghỉ (P, BH, KH...)ở các cột có tiêu đề WD. Với phần select case em thấy các ngày nghỉ này đã được cộng và cho ra kết quả bắt đầu từ cột EK đến EW của sheet BCC. Tuy nhiên có một số trường hợp họ nghỉ lẻ, Ví dụ em giả lập bạn có ID 136457 ở sheet N cột P
em ghi 0.7 nghĩ là bạn đó nghỉ 0.7 P. Như vậy em muốn ngoài cái P đã tính được ở sheet BCC thì cộng thêm cái lẻ này nữa anh ạ.

Ngoài ra em phân tích code của anh như này xem có đúng không anh nhé:
PHP:
        If Dic.Exists(sArr(I, 4)) Then 'Neu ton tai key sArr(I,4) thi
            Rws = Dic.Item(sArr(I, 4))  'Gan sArr(I,4) thanh Item
            For J = 6 To 9 'Xet cot tu 6 den 9 tuong duong cot EK den EO cua sheet BCC
                If tArr(Rws, J) > 0 Then dArr(K, J) = tArr(Rws, J)
            Next J
            For J = 7 To 16 'Xet cot tu 7 den 16--> cai nay em khong hieu em tuong tu 11 den 17?
                If tArr(Rws, J) > 0 Then dArr(K, J + 1) = tArr(Rws, J) 'Vu J+1 em cung khong hieu tai sao?
            Next J
        End If
 
Lần chỉnh sửa cuối:
Upvote 0
Hix, huhu ... Chỉnh giúp em với các anh ơi...!!
 
Upvote 0
Vâng em mô tả lại nhé. Tại Sheet BCC có các ngày nghỉ (P, BH, KH...)ở các cột có tiêu đề WD. Với phần select case em thấy các ngày nghỉ này đã được cộng và cho ra kết quả bắt đầu từ cột EK đến EW của sheet BCC. Tuy nhiên có một số trường hợp họ nghỉ lẻ, Ví dụ em giả lập bạn có ID 136457 ở sheet N cột P
em ghi 0.7 nghĩ là bạn đó nghỉ 0.7 P. Như vậy em muốn ngoài cái P đã tính được ở sheet BCC thì cộng thêm cái lẻ này nữa anh ạ.
Có vẻ "hơi bị hiểu chút chút"
Bạn kiểm tra lại file này
 
Upvote 0
Hi đúng rồi anh ạ nhưng em chưa hiểu cái vụ xét J từ 7 đến 16, và vụ J+1 anh giải thích cho em hiểu với nhé.
Hình như có nhầm lẫn ở bài trên, tôi xóa file đính kèm,, bạn xem lại flle này:
Số cột trong Code tôi có ghi nháp bên trên mỗi bảng.
Từ cột 6-9, 2 bảng giống nhau.
Từ cột 10-16 bảng này lại là 11-17 bảng kia. Bạn tự hiểu.
 

File đính kèm

  • BCC Ver 12.rar
    904.5 KB · Đọc: 10
Lần chỉnh sửa cuối:
Upvote 0
Hình như có nhầm lẫn ở bài trên, tôi xóa file đính kèm,, bạn xem lại flle này:
Số cột trong Code tôi có ghi nháp bên trên mỗi bảng.
Từ cột 6-9, 2 bảng giống nhau.
Từ cột 10-16 bảng này lại là 11-17 bảng kia. Bạn tự hiểu.

À, có phải cái xét từ 6 đến 9 và 10 đến 16 là xét cái cột bên sheet N đúng không anh. Và anh + thêm 1 là vì bên BCC bị ngăn cách cột tổng nên phải +1 để nhảy qua cột đó.
 
Upvote 0
Hix, huhu ... Chỉnh giúp em với các anh ơi...!!
Bạn thích "hu hu" nhưng lại viết không đầu không đuôi, sau bài viết của người khác, người khác cứ nghĩ là bạn "nhắc" mọi người giúp bài của bạn "tueyennhi".
Sao bạn không chịu khó nhắc rõ mọi người giúp bài nào? Của ai?
Híc! Có lẽ vì vậy mà không ai biết giúp bạn cái gì. Và bạn tiếp tục "hu hu". Mà "hu hu" trên GPE lại càng không ai giúp.
 
Upvote 0
À, có phải cái xét từ 6 đến 9 và 10 đến 16 là xét cái cột bên sheet N đúng không anh. Và anh + thêm 1 là vì bên BCC bị ngăn cách cột tổng nên phải +1 để nhảy qua cột đó.
Có lẽ sẽ có bạn "thangteo" bấm "Thích" bài viết của bạn đó.
 
Upvote 0
Bạn thích "hu hu" nhưng lại viết không đầu không đuôi, sau bài viết của người khác, người khác cứ nghĩ là bạn "nhắc" mọi người giúp bài của bạn "tueyennhi".
Sao bạn không chịu khó nhắc rõ mọi người giúp bài nào? của ai?
Híc! Có lẽ vì vậy mà không ai biết giúp bạn cái gì. Và bạn tiếp tục "hu hu". Mà "hu hu" trên GPE lại càng không ai giúp.
Có cách nào để nhìn xem đó là bài # bao nhiêu không anh? Em on điện thoại ko làm sao biết bài em đã nhờ là bài # mấy cả, dù nó nằm ở trang 42, có đính kèm file tên là BTD.rar và cả file ảnh có nội dung code nữa.. Hix..
 
Upvote 0
Có cách nào để nhìn xem đó là bài # bao nhiêu không anh? Em on điện thoại ko làm sao biết bài em đã nhờ là bài # mấy cả, dù nó nằm ở trang 42, có đính kèm file tên là BTD.rar và cả file ảnh có nội dung code nữa.. Hix..

Gần nút Like có cái #xxx đấy bạn.
 
Upvote 0
Em có một chút vấn đề về code, trong file em đính kèm (cả ảnh lẫn file rar). Nhờ mọi người và các thầy chỉnh giúp:
1. Khắc phục tình trạng thời gian khi chạy về 00:00 không bị trễ giây khi kết hợp với âm thanh báo hiệu ạ.
2. Khi ở thời gian nghỉ giữa hiệp, khi về đến 00:10 (tức còn 10s) thì âm thanh báo hiệu sẽ kêu ạ.
Cảm ơn ạ!
bài của "thangteo" đây các anh các chị ạ
 
Upvote 0
Bài đã xong, em nhờ mod xóa giùm khỏi tốm đất của GPE :)
 
Lần chỉnh sửa cuối:
Upvote 0
K/g các Anh,
Mình có 1 file excel sử dụng Record Macro để tạo chương trình, chạy thông qua nút lệnh Combobox Form Controls (Assign macro) --> Macro chạy bình thường.
Nhưng khi tạo nút lệnh Combobox ActiveX Controls (View code -> Call Macro_A) --> Chương trình báo lỗi trong câu lệnh của macro.
Mình không hiểu tại sao cùng một macro chạy bằng hai nút lệnh trên, cái thì báo lỗi, cái thì chạy bình thường.
Kính nhờ các Anh & Chủ Thớt kiểm tra và xử lý dùm mình với!! (file gửi kèm).
 

File đính kèm

  • TH6.xlsm
    1 MB · Đọc: 9
Upvote 0
Cho em hỏi câu lệnh On Error Resume Next nếu nằm trong vùg If thì chỉ có tác dụng trong vùng có If đó đúng không ạ?

Ví dụ
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom