열이 F
에 변경되었는지 확인하고 열 G
의 해당 셀에 타임 스탬프를 쓰는 하위를 만들었습니다. 이 서브를 편집하여 열 H의 시간 소인과 시작일이 A1
인 셀의 차이를 찾아 H
열의 네트워크 일을 반환 하시겠습니까? VBA가 없으면 수식은 =ABS(NETWORKDAYS(A1, B1) - SIGN(NETWORKDAYS(A1, H1))
입니다. 아래는 지금까지 제 코드입니다. 어떤 도움이 필요합니까?NETWORKDAYS를 사용하여 Excel VBA
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, c As Range
Application.EnableEvents = False
With Target
'check if change happened in column F
If .Column = 6 Then
'check if changed value is X
If Not IsEmpty(c) Then
'add datestamp if it is
Cells(.Row, 7).Value = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
Cells(.Row, 8).Value = ABS(NETWORKDAYS(G5,H2)-SIGN(NETWORKDAYS(G5,H2)
Else
'clear datestamp and Column H if not
Cells(.Row, 7).Value = ""
Cells(.Row, 8).Value = ""
End If
End If
End With
Application.EnableEvents = True
End Sub
'여기
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, c As Range
Dim d1 As Date, d2 As Date, wf As WorksheetFunction
Dim N As Long
Set wf = Application.WorksheetFunction
Application.EnableEvents = False
With Target
'check if change happened in column F
If .Column = 2 Then
'check if changed value is X
If Not IsEmpty(c) Then
'add datestamp if it is
d1 = Cells.Range("A1")
d2 = Cells.Range("B1:B2")
N = wf.NetworkDays(d1, d2)
Cells(.Row, 4).Value = N
Else
'clear datestamp and Colunm H if not
Cells(.Row, 4).Value = ""
End If
End If
End With
Application.EnableEvents = True
End Sub
무엇을 얻고 있습니까? 소스 코드의 닫는 괄호가 NETWORKDAYS 행에 없습니다. – ariscris
datestamp는 예상대로 작동하지만 네트워크 날 부분은 – WKI
입니다. 점검해야하는 여분의'End Sub'를 제외하고 들여 쓰기를 편집했습니다. 화면에 '하위'가 두 개있는 '하위'를 볼 수 없습니다. – hynekcer