2017-12-28 5 views
-2

에서 값을 사용하여 곱셈은 예상VBA하십시오에서 InputBox

Sub FindSum() 
    Dim Euro1 As String 
    Euro1 = InputBox("", "") 
     ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1.Value 
End Sub 

, 우리는이 코드 작업을 얻기 위해 어떤 해결책을 가지고 수행 이 코드는 필드에서 값을 선택하고 제공되는 값을 곱합니다 Inputbox.

+4

'.Value' 부분을 제거하십시오. – braX

+0

감사합니다. @braX 그게 효과가 있었고, 나는 정말 바보 같았습니다. 그것에 대해 생각하지 않았습니다. –

답변

0
Sub FindSum() 
    Dim Euro1 As String 
    Euro1 = InputBox("", "") 
     ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 
End Sub 

보십시오 :

5
Dim Euro1 As String 

당신은 StringEuro1를 선언하고 있습니다. 문자열은 VBA의 기본 유형이며, 기본 유형이 의미하는 당신이 호출 할 수 있습니다 회원이 없습니다 :

Debug.Print Euro1.Value 

불법입니다.

당신이 String이있는 경우, 당신은 단순히로 사용할 수 있습니다 :

ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 

이 분명하지만 다른 문제가 발생할 것입니다 : 당신은 사용자 입력 유효성 검사에 읽을 필요가있다. 체계적으로 사용자 입력을 유효한 것으로 간주하는 코드는 항상 문제가 발생할 것입니다. 여기 Excel에서 =RC[-1]*Hi There I'm some invalid input 값을 계산할 수 없습니다.

IsNumeric 기본 제공 함수를 사용하여 문자열을 숫자로 처리 할 수있는 값이 포함되어 있는지 확인하십시오 (숫자로 문자열을 사용하려는 경우).

If IsNumeric(Euro1) Then 
    ActiveCell.FormulaR1C1 = "=RC[-1]*" & Euro1 
Else 
    MsgBox "Invalid input!" 
End If