2012-03-17 4 views
4

아래는 VBA 코드입니다. Sheet2는 모든 값을 일반 형식으로 포함합니다. 코드를 실행 한 후 Sheet3의 열 'C'의 값에는 13 자리 이상의 숫자에 대한 지수 값이 포함됩니다.Excel 시트에서 열을 숫자로 서식을 지정하는 방법은 무엇입니까?

Sheet3의 'C'열에 지수 값이 포함되지 않도록 수행해야하는 작업은 무엇입니까?

private Sub CommandButton1_Click() 
Dim i, j, k As Variant 

k = 1 
For i = 1 To 30000 
If Sheet2.Range("c" & i).Value >= 100 And Sheet2.Range("c" & i).Value < 1000 Then 
Sheet3.Range("a" & k).Value = Sheet2.Range("a" & i).Value 
Sheet3.Range("b" & k).Value = Sheet2.Range("b" & i).Value 

Sheet3.Range("c" & k).Value = Sheet2.Range("c" & i).Value 

k = k + 1 
End If 
Next 

End Sub 
+0

좀 더 설명해주십시오. 특정 열의 숫자를 형식화하기 만하면됩니까? – elrado

+0

예 필요한 열만 포맷 하시겠습니까 – Punith

+0

13시에는 보이지 않지만 15 번째 자리에는 표시되지 않습니다. 결과를 표시하거나 수학을하기를 원하십니까? 텍스트 문자열로 저장하고 가능한 값으로 변환하는 것이 가능합니까? – datatoo

답변

20

이렇게하면 A 열을 텍스트로, B 열을 B 열로, C 열을 텍스트로 표시합니다.

Sub formatColumns() 
Columns(1).NumberFormat = "@" 
Columns(2).NumberFormat = "General" 
Columns(3).NumberFormat = "0" 
End Sub 
+0

특정 통합 문서의 특정 시트에 대해 '통합 문서 ("B.xlsm")로이 작업을 수행하려고합니다 .ActiveSheet.Columns ("1"). NumberFormat = "0 "'&이 doesnt는 나를 위해 그것을하는 것처럼 보인다. 어떤 아이디어? – user248884

1

하여 13 자리의 "수"텍스트 정말 인 경우, 즉 '아포스트로피

Sheet3.Range("c" & k).Value = "'" & Sheet2.Range("c" & i).Value 

로 앞에 수 있습니다하지만 돈, 당신이 그것에 어떤 계산을하지 않으려입니다 1000 여기 대체 버전 오래된 질문을 범프 죄송

Sub CommandClick() 

    Dim rCell As Range 
    Dim rNext As Range 

    For Each rCell In Sheet2.Range("C1:C30000").Cells 
     If rCell.Value >= 100 And rCell.Value < 1000 Then 
      Set rNext = Sheet3.Cells(Sheet3.Rows.Count, 1).End(xlUp).Offset(1, 0) 
      rNext.Resize(1, 3).Value = rCell.Offset(0, -2).Resize(1, 3).Value 
     End If 
    Next rCell 

End Sub 
0

입니다하지만 대답은 문자를 계산하는 것보다 t은 항상 더 큰 것 때문에 13 자리 숫자 적 If 문을 과거이게 얼마나 참조 그 값이 아닌 셀의 길이.

CellCount = Cells(Row, 10).Value 
If Len(CellCount) <= "13" Then 
'do something 
End If 

희망이 있습니다. 건배

관련 문제