Nhật Anh 9x
Thành viên chính thức
- Tham gia
- 21/10/22
- Bài viết
- 72
- Đượ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!
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!