2016-07-15 2 views
0

Длина всех ячеек в определенных столбцах должна быть 6 символов. Если нет, я должен добавить 0 в начале каждой ячейки, пока длина ячейки = 6. Каков наилучший способ сделать это?Код Excel VBA, как добавить текст в конкретную ячейку

+3

Добро пожаловать в S.O! Вы что-то пробовали? Если да, пожалуйста, предоставьте код, посмотрите на [tour] (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.

Смежные вопросы