Excel VBA代码如何将文本添加到特定单元格

Excel VBA代码如何将文本添加到特定单元格

问题描述:

特定列中所有单元格的长度必须为6个字符。如果不是,我必须在每个单元的开始处加上0,直到单元长度= 6。什么是最好的方式来做到这一点?Excel VBA代码如何将文本添加到特定单元格

+3

欢迎来到S.O!你有尝试过什么吗?如果是这样,请提供代码,看看[tour](http://*.com/tour)和[如何提问](http://*.com/help/how-to-ask )。友情提醒:*不是“我们为您代码”的服务提供商。 [VBA简介](https://blog.udemy.com/excel-macros-tutorial/) – Sgdva

+0

请注意,如果您接受将结果放在不同的列中,则可以在不使用VBA的情况下完成此操作。然后您可以隐藏原始列。如果有选择,那么使用in-cell公式比用VBA做这样的事情总是更好。 – trincot

+0

是的,它的更大的方法。我应该使用什么公式? – megagosha

这里是列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 

它将修正ALL细胞在列C

+0

非常感谢! – megagosha

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 

这是否适合您?你只需要编辑你想检查的颜色,你可以使用一个文本框。