Các Bác cho em hỏi tô màu trong Function với (1 người xem)

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

kegiaumat

Thành viên mới
Tham gia
6/7/08
Bài viết
34
Được thích
0
Em có một bảng chấm công gồm giờ vào và giờ ra của 30 ngày bây giờ em dùng Function để tính toán được số ngày nghỉ cả ngày hay nửa ngày. bây giở em muốn gán cho ô màu của những ngày nghỉ đó những màu khác nhau thì làm thế nào các bác.
code của em đây

Mã:
Function kiemtracong(kieucong As Integer, daugio As Range, cuoigio As Range, bangcong As Range) As Integernghicangay = 0
nghinuangay = 0
dimuon = 0
vesom = 0


For i = 1 To bangcong.Count / 2
    If bangcong(2 * i - 1) = "" And bangcong(2 * i) = "" Then
        nghicangay = 1 + nghicangay
        
    End If
    
    If bangcong(2 * i - 1) = "" And bangcong(2 * i) <> "" Or bangcong(2 * i - 1) <> "" And bangcong(2 * i) = "" Then nghinuangay = 1 + nghinuangay
    If bangcong(2 * i - 1) > daugio.Value Then dimuon = 1 + dimuon
    If bangcong(2 * i) < cuoigio.Value And bangcong(2 * i) <> "" Then vesom = 1 + vesom
Next
If kieucong = 1 Then kiemtracong = nghicangay
If kieucong = 2 Then kiemtracong = nghinuangay
If kieucong = 3 Then kiemtracong = dimuon
If kieucong = 4 Then kiemtracong = vesom
End Function

em đinh sử dụng
Mã:
 If bangcong(2 * i - 1) = "" And bangcong(2 * i) = "" Then
        nghicangay = 1 + nghicangay
        bangcong(2 * i) .Interior.Color = 255
    End If
mà không được
 
Em có một bảng chấm công gồm giờ vào và giờ ra của 30 ngày bây giờ em dùng Function để tính toán được số ngày nghỉ cả ngày hay nửa ngày. bây giở em muốn gán cho ô màu của những ngày nghỉ đó những màu khác nhau thì làm thế nào các bác.
code của em đây

Mã:
Function kiemtracong(kieucong As Integer, daugio As Range, cuoigio As Range, bangcong As Range) As Integernghicangay = 0
nghinuangay = 0
dimuon = 0
vesom = 0


For i = 1 To bangcong.Count / 2
    If bangcong(2 * i - 1) = "" And bangcong(2 * i) = "" Then
        nghicangay = 1 + nghicangay
        
    End If
    
    If bangcong(2 * i - 1) = "" And bangcong(2 * i) <> "" Or bangcong(2 * i - 1) <> "" And bangcong(2 * i) = "" Then nghinuangay = 1 + nghinuangay
    If bangcong(2 * i - 1) > daugio.Value Then dimuon = 1 + dimuon
    If bangcong(2 * i) < cuoigio.Value And bangcong(2 * i) <> "" Then vesom = 1 + vesom
Next
If kieucong = 1 Then kiemtracong = nghicangay
If kieucong = 2 Then kiemtracong = nghinuangay
If kieucong = 3 Then kiemtracong = dimuon
If kieucong = 4 Then kiemtracong = vesom
End Function

em đinh sử dụng
Mã:
 If bangcong(2 * i - 1) = "" And bangcong(2 * i) = "" Then
        nghicangay = 1 + nghicangay
        bangcong(2 * i) .Interior.Color = 255
    End If
mà không được
Bạn có thể gửi file nên không?
 
Em có một bảng chấm công gồm giờ vào và giờ ra của 30 ngày bây giờ em dùng Function để tính toán được số ngày nghỉ cả ngày hay nửa ngày. bây giở em muốn gán cho ô màu của những ngày nghỉ đó những màu khác nhau thì làm thế nào các bác.
code của em đây

Đã gọi là Function thì nó chỉ có thể TÍNH TOÁN chứ không thể TÔ MÀU (hay nói chung là Format cells) gì ở đây nha!
Muốn tô màu, bạn có thể dùng công cụ Conditional Formating
 
Cảm ơn bác Ndu nhé. Em cũng nghĩ nghĩ thế nhưng biết đâu đưa lên đây các bác có chiu ji hay. keke biển học mênh mông mà bác. thui em dùng Sub vậy cảm ơn bác nhìu
 
Cảm ơn bác Ndu nhé. Em cũng nghĩ nghĩ thế nhưng biết đâu đưa lên đây các bác có chiu ji hay. keke biển học mênh mông mà bác. thui em dùng Sub vậy cảm ơn bác nhìu
tô màu ngay trong hàm thì độn số dòng code dài thêm gấp bội , thà viết sub cho rồi
 
tô màu ngay trong hàm thì độn số dòng code dài thêm gấp bội , thà viết sub cho rồi
Code dài cũng được bác ơi căn bản là tính toán thì mình phải tính rồi. nếu bây giờ làm thêm 1 sub tô màu nữa thì người dùng phải thêm 1 công đoạn nữa chọn vùng tham chiếu mất thời gian lắm. Bác có cao kiến nào ko
 
Code dài cũng được bác ơi căn bản là tính toán thì mình phải tính rồi. nếu bây giờ làm thêm 1 sub tô màu nữa thì người dùng phải thêm 1 công đoạn nữa chọn vùng tham chiếu mất thời gian lắm. Bác có cao kiến nào ko
trong file này ở sheet2 ô G4 có chứa 1 hàm , bạn click vào rồi xem có gì vui ?
bạn tự đi mà sửa theo ý bạn nha
 

File đính kèm

trong file này ở sheet2 ô G4 có chứa 1 hàm , bạn click vào rồi xem có gì vui ?
bạn tự đi mà sửa theo ý bạn nha
sửThank bác nhiều cách sư dụng class em chưa biết ji cả bác có tài liệu nào hay em xin với. Đọc các bài sử dụng class trên diễn đàn em hoa cả mắt chả biết ji cả
 
sửThank bác nhiều cách sư dụng class em chưa biết ji cả bác có tài liệu nào hay em xin với. Đọc các bài sử dụng class trên diễn đàn em hoa cả mắt chả biết ji cả
tôi chả có tài liệu gì về VBA chứ đừng nói là class , cứ lấy code trên mạng về xài
sai đâu sửa đó
sửa đó sai đâu
sửa đâu sai đó
 
Đúng là sai , vì hàm trên thay đối số thì kết quả màu không đổi (màu ở vị trí cũ không bị xóa bỏ)
ờ cám ơn bạn , bạn cảm thấy sai ở đâu thì cứ tự đi sửa bạn nhé , vì ở trên là ví dụ mẫu , khi áp dụng vào bài toán thật thì bản thân việc ai sao thì người ấy sửa làm vậy , không liên quan đến tôi . Khi nào tôi viết code cho file thật để giúp người khác thì mọi sai sót mới do tôi sửa .
 
ờ cám ơn bạn , bạn cảm thấy sai ở đâu thì cứ tự đi sửa bạn nhé , vì ở trên là ví dụ mẫu , khi áp dụng vào bài toán thật thì bản thân việc ai sao thì người ấy sửa làm vậy , không liên quan đến tôi . Khi nào tôi viết code cho file thật để giúp người khác thì mọi sai sót mới do tôi sửa .

Đúng vậy, không liên quan, tôi cũng không liên quan cả về yêu cầu lẫn code để hiểu, cám ơn bạn
 
Đúng vậy, không liên quan, tôi cũng không liên quan cả về yêu cầu lẫn code để hiểu, cám ơn bạn
bác sai rồi hàm trên vẫn chạy bình thường. Dưới là kết quả của em. Vì ko bít ji về class nên viết mò. Nhưng có đặc điểm thế này với dữ liệu lớn thì máy bị out lỗi (đặc biệt là máy yếu) do cái này em viết cho vợ em (em làm bên công trình còn vợ em làm bên kế toán nên viết hộ khi ở máy em thì ko sao nhưng sang máy vợ thì chỉnh thông số giờ đi làm muộn là chết). Các bác có cách nào khắc phục ko em nghĩ là do đoạn này
rngColl.Add SetTimer(0, 0, 10, AddressOf callBackTimer), MauXanh
nhưng ko biết chỉnh settimer làm sao cho hợp lý. mong các bác chỉ giáo xin cảm ơn!
 

File đính kèm

Lần chỉnh sửa cuối:

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

Back
Top Bottom