Tạo hàm giờ ra bằng vba (1 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

Nhật Anh 9x

Thành viên chính thức
Tham gia
21/10/22
Bài viết
74
Được thích
3
Em chào anh chị!

Thưa anh chị em đang muốn viết 1 hàm tính giờ ra cho công nhân, thay vì sử dựng hàm excel lồng quá nhiều lần ạ. Nhưng code của em viết không hoạt động
Hàm em sẽ dùng ở sheet "Datatimecard" dòng màu trắng, và sẽ kéo từ cột L tới cột AO, các dòng khác thì tương tự ạ. Dữ liệu sẽ được kết nối với sheets"Bang Cham Cong_Lam"ạ. Em xin nhờ anh chị xem giùm em sai ở đâu với ạ! Em xin gửi file đính kèm ạ
Function Gio_Ra(rng1 As Range, rng2 As Range, _
GRATS As Double, GRBTS As Double, _
GRAT As Double, GRBT As Double, _
GRA0 As Double, GRB0 As Double, _
GRA1 As Double, GRB1 As Double, _
GRA2 As Double, GRB2 As Double, _
GRA3 As Double, GRB3 As Double) As Variant
Stop
Dim dk1 As Variant
Dim dk2 As Variant
Dim dk3 As Variant

GRATS = Sheets("Data").Range("Q2").value 'Thai san
GRAT = Sheets("Data").Range("O2").value 'tc 19h
GRA0 = Sheets("Data").Range("G2").value 'ko tca
GRA1 = Sheets("Data").Range("I2").value 'tc 17h
GRA2 = Sheets("Data").Range("K2").value 'tc 18h
GRA3 = Sheets("Data").Range("M2").value 'nua ngay

GRBTS = Sheets("Data").Range("Q16").value
GRBT = Sheets("Data").Range("O16").value
GRB0 = Sheets("Data").Range("G16").value
GRB1 = Sheets("Data").Range("I16").value
GRB2 = Sheets("Data").Range("K16").value
GRB3 = Sheets("Data").Range("M16").value



dk1 = rng1.Sheets("Bang Cham Cong_Lam").Cells(rng1.Row, rng1.Column).value
dk2 = rng1.Sheets("Bang Cham Cong_Lam").Cells(rng1.Row + 1, rng1.Column).value

dk3 = rng2.Sheets("Datatimecard").Cells(rng2.Row - 1, rng2.Column).value

If dk1 = "K-1" Then
Gio_Ra = Rnd() * (GRBTS - GRATS) + GRATS
ElseIf dk1 = "K/2" Then
Gio_Ra = Rnd() * (GRBT - GRAT) + GRAT
ElseIf dk1 = "P/2" Then
Gio_Ra = Rnd() * (GRBT - GRAT) + GRAT
ElseIf dk3 = " " Or dk1 = "R" Or dk1 = "P" Or dk1 = "Ô" Or dk1 = "Cô" Or dk1 = "Ro" Or dk1 = "L" Or dk1 = "NS" Then
Gio_Ra = " "
ElseIf dk2 = " " Then
Gio_Ra = Rnd() * (GRB0 - GRA0) + GRA0
Else

Select Case dk2
Case 1
Gio_Ra = Rnd() * (GRB1 - GRA1) + GRA1
Case 2
Gio_Ra = Rnd() * (GRB2 - GRA2) + GRA2
Case 3
Gio_Ra = Rnd() * (GRB3 - GRA3) + GRA3
Case Else
Gio_Ra = " "
End Select
End If
End Function

Em cảm ơn anh chi!
 

File đính kèm

Code ở trên dĩ nhiên là không chạy.
Vừa vào Function nó đã gặp cái lệnh Stop.

Nhưng nó cũng có nhiều câu sẽ không compile. Điển hình: Range làm gì có thuộc tính Sheets
dk1 = rng1.Sheets("Bang Cham Cong_Lam").Cells(rng1.Row, rng1.Column).value
dk2 = rng1.Sheets("Bang Cham Cong_Lam").Cells(rng1.Row + 1, rng1.Column).value
 
Upvote 0
Code ở trên dĩ nhiên là không chạy.
Vừa vào Function nó đã gặp cái lệnh Stop.

Nhưng nó cũng có nhiều câu sẽ không compile. Điển hình: Range làm gì có thuộc tính Sheets
dk1 = rng1.Sheets("Bang Cham Cong_Lam").Cells(rng1.Row, rng1.Column).value
dk2 = rng1.Sheets("Bang Cham Cong_Lam").Cells(rng1.Row + 1, rng1.Column).value
Em cảm ơn anh nhiều ạ! em sửa lại code ra kết quả rồi anh ạ
 
Upvote 0
Web KT

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

Back
Top Bottom