안녕하세요.
VBA 곱셈에 문제가 있는것 같아 올립니다.
특정 곱셈의 값에서 6 런타임 오류가 발생하였습니다: 오버플로 로 뜨는데
제 컴퓨터의 문제인지 VBA자체 문제인지 봐주시기 바랍니다.
Sub test()
Dim dblTemp As Double
dblTemp = 100 * 1
dblTemp = 100 * 10
dblTemp = 100 * 100
dblTemp = 100 * 1000 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = 100 * 10000 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = 100 * 100000
dblTemp = 100 * 1000000
dblTemp = 100 * 10000000
dblTemp = 100 * 100000000 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = 100 * 1000000000 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = 100 * 10000000000# '#이 붙으면 오류가 발생하지 않는다
dblTemp = 100 * 100000000000#
dblTemp = 100 * 1000000000000#
dblTemp = 100 * 10000000000000#
dblTemp = 100 * 100000000000000#
dblTemp = 100 * 1E+16 '지수부로 나오면 오류가 발생하지 않는다
End Sub
Sub test2()
Range(Sheet1.Cells(1, 1), Sheet1.Cells(16, 1)).ClearContents
Sheet1.Cells(1, 1) = 100 * 1
Sheet1.Cells(2, 1) = 100 * 10
Sheet1.Cells(3, 1) = 100 * 100
Sheet1.Cells(4, 1) = 100 * 1000 '6 런타임 오류가 발생하였습니다: 오버플로
Sheet1.Cells(5, 1) = 100 * 10000 '6 런타임 오류가 발생하였습니다: 오버플로
Sheet1.Cells(6, 1) = 100 * 100000
Sheet1.Cells(7, 1) = 100 * 1000000
Sheet1.Cells(8, 1) = 100 * 10000000
Sheet1.Cells(9, 1) = 100 * 100000000 '6 런타임 오류가 발생하였습니다: 오버플로
Sheet1.Cells(10, 1) = 100 * 1000000000 '6 런타임 오류가 발생하였습니다: 오버플로
Sheet1.Cells(11, 1) = 100 * 10000000000# '#이 붙으면 오류가 발생하지 않는다
Sheet1.Cells(12, 1) = 100 * 100000000000#
Sheet1.Cells(13, 1) = 100 * 1000000000000#
Sheet1.Cells(14, 1) = 100 * 10000000000000#
Sheet1.Cells(15, 1) = 100 * 100000000000000#
Sheet1.Cells(16, 1) = 100 * 1E+16 '지수부로 나오면 오류가 발생하지 않는다
End Sub
Sub test3()
Dim dblTemp As Double
Dim intTemp2 As Integer '////
Dim intTemp3 As Integer '////
intTemp2 = 2
intTemp3 = 255
dblTemp = intTemp2 + intTemp3
dblTemp = intTemp2 * intTemp3
End Sub
Sub test4()
Dim dblTemp As Double
Dim btTemp2 As Byte '////
Dim btTemp3 As Byte '////
btTemp2 = 2
btTemp3 = 255
dblTemp = btTemp2 + btTemp3 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = btTemp2 * btTemp3 '6 런타임 오류가 발생하였습니다: 오버플로
End Sub
Sub test5()
Dim dblTemp As Double
dblTemp = 16383 * 2
dblTemp = 32768 * 2
dblTemp = 16384 * 2 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = 32767 * 2 '6 런타임 오류가 발생하였습니다: 오버플로
dblTemp = 21474836 * 100
dblTemp = 21474837 * 100 '6 런타임 오류가 발생하였습니다: 오버플로
End Sub