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