excel - 如果单元格为 5 长,则添加 0 前缀,否则保持原样,循环
问题描述
我们有必须审查的序列号,其中一些是 5 位长,但在数据库中有一个 0 前缀,当然它们没有我们收到的格式。因此,使用其他 VBA 的点点滴滴,我得到了以下内容,它循环并没有改变任何内容。
我错过了什么/做错了什么?
Sub SNoReview()
Dim METER As String
Dim SQL_STRING As String
Dim ANSWER As String
Dim CELLADDRESS As Variant
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("Sheet1").Activate
Range("N6").Select
Do Until IsEmpty(ActiveCell)
CELLADDRESS = ActiveCell.Address
METER = ActiveCell.Value
If Len(METER) = 5 Then
METER = "0" & (METER)
Else: METER = (METER)
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
解决方案
似乎您可以一次将单个数字格式应用于整个范围。无需在这里循环。
Sub sNoReview()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("N6:N" & ws.Range("N" & ws.Rows.Count).End(xlUp).Row).NumberFormat = "000000"
End Sub
这不会改变任何 LEN > 6 的数字的格式
000001 From 1
000011 From 11
000111 From 111
001111 From 1111
011111 From 11111
111111 From 111111
你的代码
您的宏不起作用的原因是您从未更改过格式。excel 的默认设置是删除前导 0,因此您的代码添加它们只是为了让它们在之后被 excel 删除。肯定的时刻。
推荐阅读
- android - 访问另一个类的arraylist的大小
- python - 在 .txt 文件中查找特定文本
- javascript - 获取父DIV具有绝对位置的DIV的高度(JQuery)
- c# - 如何在 Unity C# 代码的 GameObject.CreatePrimitive 中添加 .fbx(人体 3D 对象)?
- r - 使用for循环检查列是否存在并创建一个新列
- amazon-web-services - 如何创建代码管道以从存储在 github 的 java 代码构建 jar 文件并将其部署到 lambda 函数?
- javascript - 如何仅运行根据屏幕尺寸生成“返回顶部”按钮的功能?
- c# - 如何修复错误:“LINQ to Entities 中不支持指定的类型成员 ...”在未映射的列上
- javascript - 使用 id_token 作为重定向 URL 中的参数的重定向用户导致身份用户为 Null
- javascript - 如何创建这些网页