데이터베이스에서 가져온 테이블에서 셀의 숫자 형식을 어떻게 변경합니까?

데이터베이스에서 가져온 테이블에서 셀의 숫자 형식을 어떻게 변경합니까?

이런 시트가 있어요 -

    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의 가정을 더 효과적으로 제어하여 열을 다시 가져오는 것입니다.

이를 수행하는 방법은 다음과 같습니다.

  1. 이 문제가 있는 열을 강조표시합니다.

  2. 선택 Data->Text To Columns

  3. Finish(이 경우 기본값은 구분됨-> 탭 -> 일반(형식)입니다)을 클릭합니다 . 반대 작업을 수행해야 하는 경우(숫자를 다시 가져오지만 강제로 텍스트로 처리해야 하는 경우) 세 번째 옵션을 텍스트로 변경합니다.

관련 정보