최근 작업에서는 숫자 열에서 VBA를 통해 필터를 수행했습니다. 그러나 그 숫자 열에는 텍스트 형식의 숫자가 있습니다. VBA 스크립트를 실행할 때 필터는 숫자이고 열에는 텍스트로 숫자가 있었기 때문에 당연히 작동하지 않았습니다. 이 경우 텍스트를 수동으로 숫자로 변환하고 저장해야했습니다. 그런 다음 매크로가 완벽하게 작동했습니다.

하지만 VBA 스크립트를 사용하여 이러한 텍스트를 숫자로 변환하고 싶었고 할 수있었습니다. 나는 누군가가 VBA를 사용하여 텍스트 값을 숫자로 변환하는 방법을 알고 싶어하는 것처럼 이것을 공유하고 싶었습니다.

===

image

Range.NumberFormat 메서드를 사용하여 텍스트를 숫자로 변환이 첫 번째이자 가장 쉬운 방법입니다. 이 방법은 선택한 엑셀 범위를 숫자 형식으로 직접 변환하므로 다른 방법보다 선호합니다.

따라서 텍스트로 변환하려는 고정 범위가있는 경우이 VBA 스 니펫을 사용하십시오.

Sub ConvertTextToNumber()

Range("A3:A8").NumberFormat = "General"

Range("A3:A8").Value = Range("A3:A8").Value

End Sub

위의 코드를 실행하면 A3 : A8 범위의 텍스트가 텍스트로 변환됩니다.

이 코드를 이렇게 작성하면 더 우아하게 보일 수 있습니다.

Sub ConvertTextToNumber()



With Range("A3:A8")

.NumberFormat = "General"

.Value = .Value

End With

End Sub

어떻게 작동합니까?

글쎄요, 아주 간단합니다. 먼저 범위의 숫자 형식을 일반으로 변경합니다. 그런 다음 VBA를 사용하여 해당 범위의 값을 동일한 범위에 넣습니다. 이렇게하면 텍스트 서식이 완전히 제거됩니다. 간단하지 않습니까?

동적 범위의 서식 수 변경

위의 코드에서 우리는 고정 된 범위의 위 코드에서 텍스트를 숫자로 변경했지만 대부분의 경우 그렇지 않습니다. 텍스트를 여러 동적 범위로 변환하기 위해 마지막으로 사용한 셀을 평가하거나 동적으로 범위를 선택할 수 있습니다.

다음과 같이 표시됩니다.

Sub ConvertTextToNumber()

With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)

.NumberFormat = "General"

.Value = .Value

End With

여기서는 범위가 A3에서 시작한다는 것을 알고 있습니다. 그러나 나는 그것이 어디에서 끝날지 모릅니다.

그래서 나는 데이터가있는`link : / tips-how-to-find-the-last-used-cell-in-one-column-in-microsoft-excel-2010 [last used excel row]`를 동적으로 식별합니다. VBA 스 니펫 Cells (Rows.Count, 1) .End (xlUp) .Row. “A3 : A”와 연결하는 마지막으로 사용 된 행 번호를 반환합니다.

참고 :이 VBA 스 니펫은 활성 통합 문서 및 활성 워크 시트에서 작동합니다. 코드가 여러 시트로 전환되는 경우 의도 한 워크 시트의 범위 개체를 설정하는 것이 좋습니다. 이렇게

Sub ConvertTextToNumber()

Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)

With Rng

.NumberFormat = "General"

.Value = .Value

End With

End Sub

위의 코드는 항상이 코드가 포함 된 통합 문서의 sheet1 번호로 텍스트를 변경합니다.

루프 및 CSng로 텍스트를 숫자로 변경 또 다른 방법은 각 셀을 반복하고 CSng 함수를 사용하여 셀 값을 숫자로 변경하는 것입니다. 여기에 코드가 있습니다.

Sub ConvertTextToNumberLoop()

Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)



For Each cel In Rng.Cells

cel.Value = CSng(cel.Value)

Next cel

End Sub

위의 VBA 스 니펫에서`link : / vba-for-loops-with-7-examples 를 사용하여 범위의 각 셀을 반복하고 다음을 사용하여 각 셀의 값을 숫자로 변환합니다. `link : / excel-macros-and-vba-what-is-csng-function-in-excel-vba [VBA의 CSng 함수].

예, 이것은 VBA를 사용하여 Excel에서 텍스트를 숫자로 변경하는 방법입니다. 이 스 니펫을 사용하여 숫자 작업을 수행하기 전에 워크 시트를 준비 할 수 있습니다. 내가 충분히 설명했으면 좋겠다. 여기에서 작업 파일을 다운로드 할 수 있습니다.

`link : /wp-content-uploads-2020-01-Change-Text-to-Number-Using-VBA.xls [VBA를 사용하여 텍스트를 숫자로 변경].

이 텍스트를 숫자로 변환하거나 기타 Excel / VBA 관련 쿼리에 대해 의문이있는 경우 아래 의견 섹션에서 질문하십시오.

관련 기사 :

link : / formating-in-vba-format-table-depending-on-number-formats-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하여 사용자 지정 숫자 형식으로 데이터 서식 지정]| Excel에서 특정 열의 숫자 형식을 변경하려면이 VBA 스 니펫을 사용하십시오. 한 번의 클릭으로 지정된 숫자 형식을 지정된 형식으로 변환합니다.

인기 기사 :

link : / keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [50 개의 Excel 단축키로 생산성 향상]| 작업 속도를 높이십시오. 이 50 개의 바로 가기를 사용하면 Excel에서 더 빠르게 작업 할 수 있습니다.

link : / formulas-and-functions-introduction-of-vlookup-function [Excel의 VLOOKUP 함수]| 이것은 다른 범위와 시트에서 값을 조회하는 데 사용되는 Excel의 가장 많이 사용되고 인기있는 기능 중 하나입니다. link : / tips-countif-in-microsoft-excel [Excel 2016의 COUNTIF]| 이 놀라운 기능을 사용하여 조건으로 값을 계산합니다. 특정 값을 계산하기 위해 데이터를 필터링 할 필요가 없습니다.

Countif 기능은 대시 보드를 준비하는 데 필수적입니다.

link : / excel-formula-and-function-excel-sumif-function [Excel에서 SUMIF 함수 사용 방법]| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.