For i = 11 To 81 Step 5
작업자일계 = WorkB.Worksheets("작업자일계")
작업자셀 = 작업자일계.Cells(i, 1)
If 작업자셀.Value = Nothing Then
Continue For
End If
For j = 5 To 65 Step 2
PBar.Value = PBar.Value + 1
PBarV.Text = CStr(PBar.Value & "/492")
작업일셀 = 작업자일계.Cells(2, j)
모델명입력 = WorkB.Worksheets("모델명 입력")
For k = 2 To 13
모델셀 = 모델명입력.Cells(k, 1)
모델워크시트 = WorkB.Worksheets(모델셀.Value.ToString)
For l = 11 To 181 Step 10
For m = 5 To 66
모델시트작업자셀 = 모델워크시트.Cells(l, m)
If 모델시트작업자셀.Value = Nothing Then
Exit For
End If
모델시트작업일셀 = 모델워크시트.Cells(l + 1, m)
If 모델시트작업일셀.Value = Nothing Then
Continue For
End If
날짜배열 = Split(모델시트작업일셀.Value.ToString(), "/")
일 = 날짜배열(1)
If Not 일.Equals(작업일셀.Value.ToString) Then
Continue For
End If
If 모델시트작업자셀.Value.ToString.Equals(작업자셀.Value.ToString) Then
플래그 = True
작업조셀 = 모델워크시트.Cells(l + 2, m)
If 작업조셀.Value.ToString.Equals("주간")
Then
작업자일계.Cells(i - 2, j)
= 작업자일계.Cells(i - 2, j).Value + 모델워크시트.Cells(l + 3, m).Value
작업자일계.Cells(i - 1, j)
= 작업자일계.Cells(i - 1, j).Value + 모델워크시트.Cells(l + 4, m).Value
작업자일계.Cells(i, j) = 작업자일계.Cells(i,
j).Value + 모델워크시트.Cells(l + 6, m).Value
작업자일계.Cells(i + 1,
j) = 작업자일계.Cells(i + 1, j).Value + 모델워크시트.Cells(l + 7, m).Value
작업자일계.Cells(i + 2,
j) = 작업자일계.Cells(i, j).Value / 작업자일계.Cells(i - 1, j).Value
Else
작업자일계.Cells(i - 2, j +
1) = 작업자일계.Cells(i - 2, j + 1).Value + 모델워크시트.Cells(l + 3, m).Value
작업자일계.Cells(i - 1, j +
1) = 작업자일계.Cells(i - 1, j + 1).Value + 모델워크시트.Cells(l + 4, m).Value
작업자일계.Cells(i, j +
1) = 작업자일계.Cells(i, j + 1).Value + 모델워크시트.Cells(l + 6, m).Value
작업자일계.Cells(i + 1,
j + 1) = 작업자일계.Cells(i + 1, j + 1).Value + 모델워크시트.Cells(l + 7, m).Value
작업자일계.Cells(i + 2,
j + 1) = 작업자일계.Cells(i, j + 1).Value / 작업자일계.Cells(i - 1, j + 1).Value
End If
End If
Next
Next
Next
Next
Next
비주얼스튜디오 커뮤니티 2013으로 작업했습니다. 비주얼베이직으로 작성했습니다.
원본소스입니다. For문 다 합쳐서 평균적으로 10만회 돌고 최악의 경우 360만회 정도 돕니다.
실행하면 6분걸립니다. 원래 느린가요?