0
나는 이것을 매우 짧은 방법으로 작성하는 데 어려움을 겪어왔다. 아마도 간단 할 것이지만 범위가 변경되는 동안 중첩 된 if를 갖는 내 머리를 얻을 수 없다. ?이 VBA 코드를 더 짧게/더 깔끔하게 작성하는 방법
데이터는 7 열, 일요일부터 토요일 기본적으로 보고서에는 M3에서 최대 데이터가있는 것으로 파악해야합니다. Sx, 그래서 현재 전체 주를 가정 한 다음 확인을 위해 거꾸로 작업하고 있습니다. 데이터 없음.
어떤 날은 그래서 일요일 목요일까지 데이터 다음 데이터 없음이있을 수 있습니다 사이에 비어있을 수 있습니다, 그래서 오프셋 기능을 루프를 사용하는
iDayNumber = 7
If WorksheetFunction.CountA(.Range("S" & iFirstRow & ":S" & iLastRow)) = 0 Then
iDayNumber = iDayNumber - 1
If WorksheetFunction.CountA(.Range("R" & iFirstRow & ":R" & iLastRow)) = 0 Then
iDayNumber = iDayNumber - 1
If WorksheetFunction.CountA(.Range("Q" & iFirstRow & ":Q" & iLastRow)) = 0 Then
iDayNumber = iDayNumber - 1
If WorksheetFunction.CountA(.Range("P" & iFirstRow & ":P" & iLastRow)) = 0 Then
iDayNumber = iDayNumber - 1
If WorksheetFunction.CountA(.Range("O" & iFirstRow & ":O" & iLastRow)) = 0 Then
iDayNumber = iDayNumber - 1
If WorksheetFunction.CountA(.Range("N" & iFirstRow & ":N" & iLastRow)) = 0 Then
iDayNumber = iDayNumber - 1
If WorksheetFunction.CountA(.Range("M" & iFirstRow & ":M" & iLastRow)) = 0 Then
Application.ScreenUpdating = True
If MsgBox("There is no data in the current week." & vbCrLf & "Cannot Continue.", _
vbOKOnly + vbCritical, "Aborting") = vbOK Then
Exit Sub
End If
End If
End If
End If
End If
End If
End If
End If
End If
왼쪽으로 이동해야 하나, 마이너스로 루프를 작성하는 방법은 무엇입니까? 감사! –
죄송합니다. 방금 내 오류를 알려 드려 죄송합니다. – Seb
아니요. 7시에 시작해야하며, 오른쪽에서 최신 데이터 인 –