2016-04-12 10 views
1

以下は、ワークシート3以降のスプレッドシート内のテキストとしてすべてのセルを書式設定するために使用されるSubです。あなたが見るように、太字で、私が最も変わる必要がある線があります。この行の目的の1つは、すべてのシートで '00001'値で構成されているため、このコードで変換された値が '1'に変更されるため、Column1(「クライアントID」)の値をそのまま維持することです。それは間違っている。重要なことは、すべてのワークシートのColumn1には常に同じ '00001'値が含まれていることです。VBAすべてのセルをテキストとしてフォーマットする

私の問題は、1つのワークシートに、数値の前に000sを付けるColumn6( "値")があることです。行を以下のように変更すると、マクロは依然としてColumn6の値から先行する000を削除します。私は条件が私が思ったほど簡単ではないと思う。

If Not IsEmpty(Cell.Value) And IsNumeric(Cell.Value) And 
InStr(wsTemp.Cells(1, Cell.Column), "Client ID") <= 0 And 
InStr(wsTemp.Cells(6, Cell.Column), "Value") <= 0 Then 

お勧めはありますか?

+1

あなたがの形式を変更することができますクライアントIDが設定された文字数であることがわかっている場合は、セル/列をカスタム形式に変換して先行ゼロを表示します。あなたはまだそれを数字として扱うことができます。 VBAを使用してこの形式を設定できますが、クライアントコードが7桁の長さの場合は0000000のようなカスタム形式を使用します。 –

答えて

1

Plsは、ライン

Cell.Value = CStr(Temp) 

はこれを試してみてください。

Sub formatAllCellsAsText() 
    Dim wsTemp As Worksheet 
    Dim LastRow As Long, LastColumn As Long 
    Dim StartCell As Range, Cell As Range 
    Dim Temp As Double 
    Dim Temp2 As String 
    For sht = 3 To Worksheets.Count 
    Set wsTemp = Sheets(sht) 
    Set StartCell = wsTemp.Range("A4") 
    LastRow = wsTemp.Range("A4").CurrentRegion.Rows.Count 
    LastColumn = wsTemp.Range("A4").CurrentRegion.Columns.Count 
    For Each Cell In wsTemp.Range(StartCell, wsTemp.Cells(LastRow, LastColumn)).Cells 
     If Not IsEmpty(Cell.Value) And IsNumeric(Cell.Value) And InStr(wsTemp.Cells(1, Cell.Column), "Client ID") <= 0 Then 
     Temp = Cell.Value 
     Temp2 = Cell.NumberFormat 
     Cell.ClearContents 
     Cell.NumberFormat = "@" 
     Cell.Value = Format(Temp, Temp2) 
     End If 
    Next 
    Next 
End Sub 

あなたは、単に数の書式をチェックして、文字列に適用します。このように "0001"は "0001"のままです。もう一つの方法は、そのルールが唯一の先行ゼロを持つ数値を用いて細胞に適用されますので、あなたはまた、If IsNumeric(Cell.Value) And Left(Cell.Text, 1) = "0" Thenがtrueの場合にのみ、これを行うことができます.Text

Dim Temp As String 
Temp = Cell.Text 
Cell.ClearContents 
Cell.NumberFormat = "@" 
Cell.Value = Temp 

の使用になります。)

0

すべてのワークシートのColumn1には常に同じ '00001'の値が含まれています。

変更

Cell.Value = Format(Temp,"00000") 
関連する問題