programing tip

Excel VBA에서 정수를 문자열로 어떻게 변환합니까?

itbloger 2020. 6. 6. 08:40
반응형

Excel VBA에서 정수를 문자열로 어떻게 변환합니까?


Excel VBA에서 정수 값 "45"를 문자열 값 "45" 로 어떻게 변환 합니까?


CStr(45) 필요한 전부입니다 (문자열 변환 기능)


CStr () 함수를 사용해보십시오

Dim myVal as String;
Dim myNum as Integer;

myVal = "My number is:"
myVal = myVal & CStr(myNum);

대부분의 경우 "변환"할 필요가 없습니다. VBA는와 같은 변환기를 사용 하지 않고 안전한 암시 적 유형 변환을 수행합니다 CStr.

아래 코드는 변수가 Type String이고 암시 적 유형 변환이 자동으로 수행 되므로 문제없이 작동합니다 !

Dim myVal As String
Dim myNum As Integer

myVal = "My number is: "
myVal = myVal & myNum

결과:

"내 번호는 : 0"

당신은 그 공상을 얻을 필요가 없습니다, 이것도 작동합니다 :

Dim myString as String
myString = 77

"77"

변수 유형이 모호 할 때 변환해야합니다 유일한 시간이다 (예를 들어, 유형 변형, 또는 셀의 Value( 이다 변형)).

그럼에도 불구 CStr하고 다른 String 변수 또는 상수와 합성하는 경우 함수 를 사용할 필요가 없습니다 . 이처럼 :

Sheet1.Range("A1").Value = "My favorite number is " & 7

"내가 가장 좋아하는 숫자는 7"

따라서 정말로 드문 경우는 다른 문자열과 혼합 하지 않을 때 정수 값을 변형 또는 셀 값에 저장하려는 경우입니다 (이는 매우 드문 경우입니다).

Dim i as Integer
i = 7
Sheet1.Range("A1").Value = i

7

Dim i as Integer
i = 7
Sheet1.Range("A1").Value = CStr(i)

"7"


필자의 경우 CString 함수를 찾을 수 없습니다. 그러나 값에 빈 문자열을 추가해도 효과가 있습니다.

Dim Test As Integer, Test2 As Variant
Test = 10
Test2 = Test & ""
//Test2 is now "10" not 10

당기는 문자열이 E01과 같은 16 진수이면 CStr 함수를 사용하고 문자열 변수 유형으로 먼저 예금하더라도 Excel은 0으로 변환합니다. 이 문제를 해결하는 한 가지 방법은 값의 시작 부분에 '를 추가하는 것입니다.

예를 들어 Word 테이블에서 값을 가져 와서 Excel로 가져 오는 경우 :

strWr = "'" & WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)

변수를 선언하지 않고 가장 짧은 방법은 유형 힌트를 사용하는 것입니다 .

s$ =  123   ' s = "123"
i% = "123"  ' i =  123

로 컴파일되지 않습니다 Option Explicit. 종류는되지 않습니다 VariantString하고Integer


이를 수행하는 또 다른 방법은 숫자 값의 두 구문 분석 섹션을 함께 결합하는 것입니다.

Cells(RowNum, ColumnNum).Value = Mid(varNumber,1,1) & Mid(varNumber,2,Len(varNumber))

나는보다는이 더 나은 성공을 발견 CStr()하기 때문에 CStr()내 경험에 변형에서 온 변환 10 진수하지 않는 것입니다.


If you have a valid integer value and your requirement is to compare values, you can simply go ahead with the comparison as seen below.

Sub t()

Dim i As Integer
Dim s  As String

' pass
i = 65
s = "65"
If i = s Then
MsgBox i
End If

' fail - Type Mismatch
i = 65
s = "A"
If i = s Then
MsgBox i
End If
End Sub

참고URL : https://stackoverflow.com/questions/11595226/how-do-i-convert-an-integer-to-a-string-in-excel-vba

반응형