2016-07-15 16 views
0

特定の列のすべてのセルの長さは6文字でなければなりません。そうでなければ、セルの長さが6になるまで各セルの先頭に0を加えなければなりません。それを行う最善の方法は何ですか?ここでExcel VBAコード特定のセルにテキストを追加する方法

+3

S.O!へようこそ!何か試しましたか?もしそうなら、コードを提供して、[ツアー](http://stackoverflow.com/tour)と[質問する](http://stackoverflow.com/help/how-to-ask)を見てください。 )。フレンドリーリマインダー:StackOverflowは "あなたのためのコード"サービスプロバイダーではありません。 [VBA入門](https://blog.udemy.com/excel-macros-tutorial/) – Sgdva

+0

結果が別の列に入力されたことを受け入れる場合、これはVBAなしで行うことができます。元の列を非表示にすることができます。選択肢がある場合は、VBAと比較してセル内の式でそのようなことを実行する方が殆どです。 – trincot

+0

はい、そのさらに大きな方法です。どのような式を使うべきですか? – megagosha

答えて

0

は、列Cためのサンプルです:

Sub Make6() 
    Dim r As Range, r1 As Range, r2 As Range, r3 As Range 
    bry = Array("000000", "00000", "0000", "000", "00", "0", "") 
    Dim N As Long, v As String, L As Long 
    Set r1 = Range("C:C") 
    N = Cells(Rows.Count, "C").End(xlUp).Row 
    Set r2 = Range("C1:C" & N) 
    Set r3 = Range("C" & N + 1 & ":C" & Rows.Count) 

    r1.NumberFormat = "@" 
    For Each r In r2 
     v = r.Value 
     L = Len(v) 
     If L < 6 Then 
      r.Value = bry(L) & v 
     End If 
    Next r 
    r3.Value = "000000" 

End Sub 

それは列C内のすべてのセルを修正します。

+0

ありがとうございます! – megagosha

0
Dim lastRow As Integer 
Dim i As Integer 
Dim sh As Worksheet 
Dim cont As String 


Set sh = ThisWorkbook.Worksheets("Sheet1") 'Your Sheet 

With sh 
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Coloumn A 

    For i = 1 To lastRow 
     Cells(i, 1).NumberFormat = "@" 
     Do Until Len(Cells(i, 1)) = 6 'Coloumn A 
      cont = Cells(i, 1)   'Coloumn A 
      Cells(i, 1) = "0" & cont 'Coloumn A 
     Loop 
    Next i 

End With 

これは機能しますか?チェックしたいcoloumnを編集するだけで、TextBoxを使うことができます。

関連する問題