이런 시트가 있어요 -
A | B | C
----------------------
2 | Okay | 0
3 | Not okay | 0
셀 C3
에는 녹색 오류 포인터가 있고 "이 셀의 숫자는 텍스트 형식이거나 앞에 아포스트로피가 옵니다."라고 표시되며 물론 왼쪽 맞춤입니다.
C2
두 셀 과 의 형식을 모두 표시하면 C3
둘 다 "일반"으로 표시됩니다.
VBA를 사용하여 "NumberFormat"을 검사하면 둘 다 "일반"으로 나타납니다.
참고로 저는 Office 2010을 사용하고 있습니다.
VBA 코드를 사용하여 텍스트에서 일반으로 형식을 변경하여 이 문제를 정리하고 싶습니다(여러 워크시트에 걸쳐 수십 개의 셀에 발생). 그러나 문제의 셀이 이미 일반으로 형식이 지정되었다고 생각되면 어떻게 해야 합니까? ?
답변1
이는 Excel에서 숫자가 텍스트로 저장되었다고 판단하는 경우(형식이 숫자로 변경된 경우에도 그렇지 않은 경우에도) 상대방에서 잘못 인코딩되었기 때문에 발생할 수 있습니다.
텍스트로 저장된 숫자에 대한 매우 간단한 수정은 숫자를 숫자로 변환하는 수식이 포함된 추가 열을 추가하는 것입니다.
=$C2*1
그걸 아래로 끌어서 참조하면 됩니다. 실시간 연결된 테이블로 작업하는 경우 테이블 끝에 이 열이 있으면 수식 범위가 데이터 범위와 함께 확장된다는 의미입니다.
물론 VBA를 사용하면 열의 각 값을 이 수식의 결과로 바꾸는 데이터를 통과하는 루프를 실행할 수 있습니다.
답변2
다음은 트릭을 수행하는 VBA 스니펫입니다.
Sub FixTextFormattedNumbers()
Dim s As Worksheet, r As Range
'Set target sheet and range
Set s = Sheets("Sheet1")
Set r = s.Range("A1:A10")
For Each c In r
On Error Resume Next
c.Value = CDbl(c.Value)
Next c
End Sub
오류 처리는 지정된 범위에 실제 텍스트가 있는 경우를 대비한 것입니다.
답변3
이는 데이터를 복사하여 붙여넣거나 가져올 때 종종 발생할 수 있습니다. 전체 열인 경우 문제를 해결하는 가장 좋은 방법은 기본적으로 데이터의 종류에 대한 Excel의 가정을 더 효과적으로 제어하여 열을 다시 가져오는 것입니다.
이를 수행하는 방법은 다음과 같습니다.
이 문제가 있는 열을 강조표시합니다.
선택
Data
->Text To Columns
Finish
(이 경우 기본값은 구분됨-> 탭 -> 일반(형식)입니다)을 클릭합니다 . 반대 작업을 수행해야 하는 경우(숫자를 다시 가져오지만 강제로 텍스트로 처리해야 하는 경우) 세 번째 옵션을 텍스트로 변경합니다.