Nhờ sửa lỗi file VBA (1 người xem)

Liên hệ QC

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

thuanntk

Thành viên chính thức
Tham gia
14/1/10
Bài viết
81
Được thích
5
Chào A/C diễn đàn, Mình search trên GPE tìm được file này, nhưng khi mình chạy VBA lại bị lỗi, nhờ các A/C xem giúp mình lỗi gì với nhé. Cảm ơn A/C nhiều
 

File đính kèm

Lỗi của bạn chuỗi từ Ch(1), Ch(2), Ch(3) là đối số cho sheet3.Range(....)

Mà nguyên tắc của Range thì tối đa 255 ký tự. Số ký tự trong chuỗi Ch tạo ra vượt quá 255 ký tự nên lỗi.

Từ đó bạn tìm giải pháp nha.
 
Upvote 0
Lỗi của bạn chuỗi từ Ch(1), Ch(2), Ch(3) là đối số cho sheet3.Range(....)

Mà nguyên tắc của Range thì tối đa 255 ký tự. Số ký tự trong chuỗi Ch tạo ra vượt quá 255 ký tự nên lỗi.

Từ đó bạn tìm giải pháp nha.

Mình cũng không rành về VBA nhiều lắm, bạn có thể nói rõ giúp mình giải pháp với, cảm ơn bạn nhiều
 
Upvote 0
Có A/C nào giúp mình được không vậy? Cảm ơn A/C nhiều
 
Upvote 0
đọc cho kỹ rồi làm nhé
tìm trong code có đoạn này
Mã:
Sheet3.[A11:H2000].Clear
Sheet3.[A11:H11].Resize(j) = WorksheetFunction.Transpose(Kq)
'Dinh dang bao cao
    With Sheet3.Range(Ch(1))
        .Font.FontStyle = "Bold"
        .Interior.ColorIndex = 37
    End With
    With Sheet3.Range(Ch(2))
        .Font.ColorIndex = 5
        .Font.FontStyle = "Bold"
        .Interior.ColorIndex = 0
    End With
   With Sheet3.Range(Ch(3))
            .Font.FontStyle = "Italic"
        .Font.ColorIndex = 53
        .Interior.ColorIndex = 0
    End With

sửa lại thành
Mã:
Sheet3.[A11:I10000].Clear
Sheet3.[A11:I11].Resize(j).Value = WorksheetFunction.Transpose(Kq)
With Sheet3.Range("A10:I10").Resize(j + 1)
    .AutoFilter 9, 1
    If Sheet3.[A10000].End(xlUp).Row > 10 Then
        Set Tm = Sheet3.Range("A11:H11").Resize(j).SpecialCells(xlCellTypeVisible)
        Tm.Font.FontStyle = "Bold"
        Tm.Interior.ColorIndex = 37
    End If
    .AutoFilter 9, 2
    If Sheet3.[A10000].End(xlUp).Row > 10 Then
        Set Tm = Sheet3.Range("A11:H11").Resize(j).SpecialCells(xlCellTypeVisible)
        Tm.Font.ColorIndex = 5
        Tm.Font.FontStyle = "Bold"
        Tm.Interior.ColorIndex = 0
    End If
    .AutoFilter 9, "<>1", xlAnd, "<>2"
    Set Tm = Sheet3.Range("A11:H11").Resize(j).SpecialCells(xlCellTypeVisible)
    Tm.Font.FontStyle = "Italic"
    Tm.Font.ColorIndex = 53
    Tm.Interior.ColorIndex = 0
    .AutoFilter
    Sheet3.[I11:I10000].ClearContents
End With
 
Upvote 0
Anh doveandrose ơi, anh xem lại giúp em cái lỗi này là do em mới cập nhập thêm dữ liệu vào bị lỗi, còn cái lỗi hôm qua anh sửa giúp em đã ok rồi, anh xem cai lỗi mới này giúp em với nhé.
 

File đính kèm

Upvote 0
Anh doveandrose ơi, anh xem lại giúp em cái lỗi này là do em mới cập nhập thêm dữ liệu vào bị lỗi, còn cái lỗi hôm qua anh sửa giúp em đã ok rồi, anh xem cai lỗi mới này giúp em với nhé.
lỗi chỗ này
Kq(6, ID) = Kq(6, ID) + Tm(I, 9)
là do ID không có giá trị nên nó bị lỗi. vì mảng không thể có chỉ số rỗng được
đoán có thể nguyên nhân của bài này sai là khai báo biến không rõ ràng, bạn nên xem lại biến Tm
 
Lần chỉnh sửa cuối:
Upvote 0
lỗi chỗ này
Kq(6, ID) = Kq(6, ID) + Tm(I, 9)
là do ID không có giá trị nên nó bị lỗi. vì mảng không thể có chỉ số rỗng được
đoán có thể nguyên nhân của bài này sai là khai báo biến không rõ ràng, bạn nên xem lại biến Tm

Bạn có thể sửa lại mình đoạn code, cảm ơn bạn
 
Upvote 0
Anh doveandrose ơi, anh xem lại giúp em cái lỗi này là do em mới cập nhập thêm dữ liệu vào bị lỗi, còn cái lỗi hôm qua anh sửa giúp em đã ok rồi, anh xem cai lỗi mới này giúp em với nhé.
tìm đến chỗ
Mã:
Dic.Add IIf(IsNumeric(Tm(I, 1)), CStr(Tm(I, 1)), Trim(Tm(I, 1))), ID
sửa lại thành
Mã:
Dic(UCase(WorksheetFunction.Trim(Tm(I, 1)))) = ID


tìm đến chỗ
Mã:
If Left(Tm(I, 7), 3) = "131" Then Tm(I, 7) = Tm(I, 7) & "-" & Tm(I, 12)
If Left(Tm(I, 7), 3) = "331" Then Tm(I, 7) = Tm(I, 7) & "-" & Tm(I, 10)
If Left(Tm(I, 8), 3) = "131" Then Tm(I, 8) = Tm(I, 8) & "-" & Tm(I, 13)
If Left(Tm(I, 8), 3) = "331" Then Tm(I, 8) = Tm(I, 8) & "-" & Tm(I, 11)

sửa lại thành
Mã:
If Left(Tm(I, 7), 3) = "131" Then Tm(I, 7) = UCase(Tm(I, 7) & "-" & Tm(I, 12))
If Left(Tm(I, 7), 3) = "331" Then Tm(I, 7) = UCase(Tm(I, 7) & "-" & Tm(I, 10))
If Left(Tm(I, 8), 3) = "131" Then Tm(I, 8) = UCase(Tm(I, 8) & "-" & Tm(I, 13))
If Left(Tm(I, 8), 3) = "331" Then Tm(I, 8) = UCase(Tm(I, 8) & "-" & Tm(I, 11))
 
Upvote 0
Chào các anh chị!
Em đang tập viết code cho file này mà có một đoạn không hiểu sao làm hoài không được.
Em muốn khi em nhập liệu vào các dòng 10, 15, 20 thì ngày giờ hệ thống sẽ tự nhập vào các dòng 11, 16, 21, còn các dòng khác thì nhập liệu bình thường chỉ được định dạng màu mà th
Nhờ các anh chị giúp em với.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom