Excel 如果现有字符串的长度为4,则添加字符串

Excel 如果现有字符串的长度为4,则添加字符串,excel,vba,csv,Excel,Vba,Csv,我需要一个VBA脚本来读取一列字符串。 在此列中,将包含以下字符串: ['239222', '292291', '939328', '2343', '923219', '3928'] 但是,每当字符串的长度等于4时,我想添加四个前导零 我会得到: ['239222','292291','939328','00002343','923219','00003928'] 这可能吗?插入前缀 调整四个常数蚂蚁以满足您的要求 代码是为ActiveSheet编写的。考虑修改它 对工作表进行限定 代码 O

我需要一个VBA脚本来读取一列字符串。 在此列中,将包含以下字符串: ['239222', '292291', '939328', '2343', '923219', '3928'] 但是,每当字符串的长度等于4时,我想添加四个前导零

我会得到: ['239222','292291','939328','00002343','923219','00003928']

这可能吗?

插入前缀
  • 调整四个常数蚂蚁以满足您的要求

  • 代码是为
    ActiveSheet
    编写的。考虑修改它 对工作表进行限定

代码

Option Explicit

Sub insertPrefix()

    Const FirstRow As Long = 2        ' Column Range First Row
    Const ColumnID As Variant = "A"   ' Column Number or Letter e.g. 1 or "A"
    Const TextLength As Long = 4
    Const TextPrefix As String = "0000"

    Dim rng As Range              ' Last Non-Empty Cell, Column Range
    Dim cel As Range              ' Current Cell (For Each Control Variable)

    ' Task: Define Column Range.

    ' Define Last Non-Empty Cell
    Set rng = Columns(ColumnID).Find(What:="*", LookIn:=xlFormulas, _
                                     SearchDirection:=xlPrevious)
    ' Check if all cells in column are empty.
    If rng Is Nothing Then Exit Sub
    ' Check if cell in FirstRow and cells below are empty.
    If rng.Row < FirstRow Then Exit Sub
    ' Define Column Range.
    Set rng = Range(Cells(FirstRow, ColumnID), rng)

    ' Change NumberFormat of Column Range to Text (@).
    rng.NumberFormat = "@"

    ' Task: Modify cells of Column Range

    ' Loop through cells of Column Range.
    For Each cel In rng
        ' Check if length of the value in Current Cell is equal to TextLength.
        If Len(cel.Value) = TextLength Then
            ' Insert TextPrefix in front of value in current cell.
            cel.Value = TextPrefix & cel.Value
        End If
    Next cel

End Sub
选项显式
子插入前缀()
Const FirstRow长度=2'列范围第一行
Const ColumnID作为Variant=“A”列编号或字母,例如1或“A”
Const TextLength As Long=4
Const TextPrefix As String=“0000”
Dim rng As Range“最后一个非空单元格,列范围
Dim cel作为“范围”当前单元格(针对每个控制变量)
'任务:定义列范围。
'定义最后一个非空单元格
设置rng=Columns(ColumnID).Find(What:=“*”,LookIn:=xlFormulas_
SearchDirection:=xlPrevious)
'检查列中的所有单元格是否为空。
如果rng为空,则退出Sub
'检查第一行和下面的单元格是否为空。
如果rng.Row<第一行,则退出Sub
'定义列范围。
设置rng=范围(单元格(第一行,列ID),rng)
'将列范围的NumberFormat更改为文本(@)。
rng.NumberFormat=“@”
'任务:修改列范围的单元格
'在列范围的单元格中循环。
对于rng中的每个cel
'检查当前单元格中值的长度是否等于TextLength。
如果Len(cel.Value)=TextLength,则
'在当前单元格中的值前面插入TextPrefix。
cel.Value=文本前缀和cel.Value
如果结束
下一个细胞
端接头