2016-04-06 14 views
0

数字の列があり、数値がゼロで始まる場合は列の各セルから先行ゼロを削除する必要があります。数字の文字列の先頭にゼロを削除するVBA

+0

セルを数値ではなくテキストとしてフォーマットすると、Excelがこれを行います。 –

+0

あなたは 'if isnumeric(activecell)、次にactivecell.Value = cdbl(activecell.Value)'のようなものを試しませんでしたか? – PatricK

答えて

2

てみてください、

with worksheets("Sheet1") 
    with .columns(1) 
     .numberformat = "General" 
     .texttocolumns destination:=.cells(1), _ 
         datatype:=xlFixedWidth, fieldinfo:=Array(0, 1) 
    end with 
end with 
+0

はうまくいった!ありがとう! – khert87

+1

.............非常に優雅! –

+0

[最初の要素は列番号(1-based)です](https://msdn.microsoft.com/en-us/library/office/ff193593.aspx)なぜあなたの開始は0ですか? – findwindow

0

番号に変換すると、あなたは、このUDFが機能するための実行可能な解決策ではない場合:

Function StripLeadingZeros(MyString As String) 
Dim X As Long 
For X = 1 To Len(MyString) 
    If Left(MyString, 1) = "0" Then 
     MyString = Right(MyString, Len(MyString) - 1) 
    Else 
     Exit For 
    End If 
Next 
StripLeadingZeros = MyString 
End Function 
1

私はあなたを介して反復処理する方法を見つけ出すことができると確信してい各セルでは、以下のコード例でそのことを実証するつもりはありません。これはトリックを行います。 A4を処理する必要がある各セルに置き換えます。

Dim My_Number As String 
Dim i As Integer 
My_Number = Range("A4") 
For i = 1 To Len(My_Number) - 1 
    If InStr(1, My_Number, "0") = 1 Then 
     My_Number = Right(My_Number, Len(My_Number) - 1) 
    Else 
     Range("A4") = My_Number 
     Exit For 
    End If 
Next 

Instrは、文字列の最初の位置でゼロを探しています。もし見つかった場合、ゼロを見つけると、次の行は最初の文字列以外のすべての文字列(ゼロ)をセルに書き込みます。

+1

先頭にゼロが1つ以上ある場合はどうなりますか? – findwindow

+0

ねえ、上のコードセクションを更新しました。基本的には文字列をループし、最初の文字を調べてゼロを調べます。これを行う方法はおそらく100種類あります。 – Dammer15

+0

これはダンが何をしたのですか? – findwindow

関連する問題