해결
vba 설명 요청드립니다.
Sub Cal_gibon_Sigub()
Dim i As Integer
Dim j As Integer
Dim C As Range
Dim L As Range
Dim D As Range
Dim s1 As Double
Dim Maxval As Integer
For i = 1 To 20
Set C = ActiveSheet.Range("C8").Offset(i, 0)
ActiveSheet.Cells(8 + i, 3).Select
If IsEmpty(ActiveCell) Then
Exit For
End If
' Set k = ActiveSheet.Cells(1 + i, 3).Value
For j = 1000 To 30000 Step 50
ActiveSheet.Cells(i + 8, 4).Value = j
Set L = ActiveSheet.Range("L8").Offset(i, 0)
If L >= C Then
Exit For
End If
Next j
If L > C Then
Maxval = j
For s1 = j - 49.9 To Maxval Step 0.1
ActiveSheet.Cells(i + 8, 4).Value = s1
Set L = ActiveSheet.Range("L8").Offset(i, 0)
If L >= C Then
Exit For
End If
Next s1
End If
항목별 설명 요청드립니다.
For j = 1000 To 30000 Step 50 이 항목은 수정할려면 어떻게 해야 하는지도 궁금합니다.
30000 이것을 40000으로 바꾸면 오류납니다.
Dim i As Integer
Dim j As Integer
Dim C As Range
Dim L As Range
Dim D As Range
Dim s1 As Double
Dim Maxval As Integer
For i = 1 To 20
Set C = ActiveSheet.Range("C8").Offset(i, 0)
ActiveSheet.Cells(8 + i, 3).Select
If IsEmpty(ActiveCell) Then
Exit For
End If
' Set k = ActiveSheet.Cells(1 + i, 3).Value
For j = 1000 To 30000 Step 50
ActiveSheet.Cells(i + 8, 4).Value = j
Set L = ActiveSheet.Range("L8").Offset(i, 0)
If L >= C Then
Exit For
End If
Next j
If L > C Then
Maxval = j
For s1 = j - 49.9 To Maxval Step 0.1
ActiveSheet.Cells(i + 8, 4).Value = s1
Set L = ActiveSheet.Range("L8").Offset(i, 0)
If L >= C Then
Exit For
End If
Next s1
End If
항목별 설명 요청드립니다.
For j = 1000 To 30000 Step 50 이 항목은 수정할려면 어떻게 해야 하는지도 궁금합니다.
30000 이것을 40000으로 바꾸면 오류납니다.
이
골
d
P
댓글 2
Integer 변수는 -32767부터 32767까지의 범위를 갖는16비트(2바이트) 숫자를 저장합니다
40000은 정수변수의 범위를 초과하므로 에러가발생합니다
그러므로 Dim j As Integer 변수선언을 Dim j As Long 으로 형변환을 해주면 됩니다
감사합니다