' 입력값을 두 배로 만들어 반환하는 사용자 정의 함수 (UDF)
Function DoubleTheValue(inputValue As Variant) As Variant
' 입력값이 숫자인지 확인
If IsNumeric(inputValue) Then
' 숫자인 경우 2를 곱한 값을 반환
DoubleTheValue = CDbl(inputValue) * 2
Else
' 숫자가 아닌 경우, 오류 값(#VALUE!)을 반환
DoubleTheValue = CVErr(xlErrValue)
End If
End Function
' DoubleTheValue 함수를 사용하여 Sheet1의 A1, A2 셀 값을 처리하는 프로시저
Sub ApplyDoubleToSheetCells()
Dim ws As Worksheet
Dim valA1 As Variant
Dim valA2 As Variant
' 작업할 시트 지정 (Sheet1)
On Error Resume Next ' 만약 "Sheet1"이 없을 경우 오류를 건너뛰기 위함 (선택적)
Set ws = ThisWorkbook.Sheets("Sheet1")
If ws Is Nothing Then
MsgBox "Sheet1을 찾을 수 없습니다.", vbCritical, "시트 오류"
Exit Sub
End If
On Error GoTo 0 ' 오류 처리 기본값으로 복원
' --- A1 셀 처리 ---
valA1 = ws.Range("A1").Value
' DoubleTheValue 함수를 호출하여 결과를 B1 셀에 입력
' DoubleTheValue 함수 내에서 숫자 검사를 하므로, 여기서는 직접 호출
ws.Range("B1").Value = DoubleTheValue(valA1)
' 만약 DoubleTheValue 함수가 오류를 반환했을 때 B1 셀에 특정 메시지를 표시하고 싶다면:
' If IsError(ws.Range("B1").Value) Then
' ws.Range("B1").Value = "A1: 숫자 아님"
' End If
' --- A2 셀 처리 ---
valA2 = ws.Range("A2").Value
' DoubleTheValue 함수를 호출하여 결과를 B2 셀에 입력
ws.Range("B2").Value = DoubleTheValue(valA2)
' 만약 DoubleTheValue 함수가 오류를 반환했을 때 B2 셀에 특정 메시지를 표시하고 싶다면:
' If IsError(ws.Range("B2").Value) Then
' ws.Range("B2").Value = "A2: 숫자 아님"
' End If
MsgBox "A1, A2 셀의 값을 두 배로 하여 B1, B2 셀에 적용했습니다.", vbInformation, "작업 완료"
End Sub
카테고리 없음