VBA Excel 2013查找特定字符串长度并添加值
我正在尝试编写一个宏来查找一个单元格是否有5个数值,如果有,我需要在末尾添加一个0 我的宏中已经有一些步骤 比如说VBA Excel 2013查找特定字符串长度并添加值,vba,excel,Vba,Excel,我正在尝试编写一个宏来查找一个单元格是否有5个数值,如果有,我需要在末尾添加一个0 我的宏中已经有一些步骤 比如说 电池BZ2=9.48E+00 My macro查找小数点并将其替换为94811E-5 在这种情况下,我需要添加一个零,因为有5个数值,并且仅当最后三个字符是E-5时 预期结果为948110E-5 我正在使用存储为文本的数字 有人能帮我吗 Sub TextFormat() Dim c As Range Dim d As Range For Each c I
BZ2
=9.48E+0094811E-5
E-5
时948110E-5
我正在使用存储为文本的数字
有人能帮我吗
Sub TextFormat()
Dim c As Range
Dim d As Range
For Each c In Sheets("order_export").Range("F2:F10000").Cells
If StrComp(Right(c.Value, 1), "R", vbTextCompare) = 0 Then
c.Offset(0, -1).Value = c.Offset(0, -1).Value & "R"
c.Value = Left(c.Value, Len(c.Value) - 1)
End If
Next c
For Each d In Sheets("order_export").Range("BZ2:BZ10000").Cells
If InStr(1, d.Value, ".", vbTextCompare) > 0 Then
d.NumberFormat = "@"
d.Value = Replace(d.Value, ".", "")
d.Value = d.Value & "E-5"
End If
Next d
End Sub
使用此条件
if isNumeric(left(text,5)) AND right(text,3) = "E-5" then
'add zero
text = left(text,5) & "0" & right(text, len(text) - 5)
end if
如果前5个字符为数字,最后3个字符为e-5,则将在前5个字符后添加0。left
函数使用前5个字符。isNumeric
检查它们是否为数字。然后剩下的,取前5个字符,加0,然后右
取从右开始到长度-5的所有字符(我们已经有了前5个字符)
编辑
正如所指出的,如果已经有一个0,比如123450E-5,那么将添加一个额外的0
添加和len(text)=8
,这样只有当有8个字符时才会添加0 Excel没有这样做,因此为了提高编码效率,最好先将和
分解为IF
,然后再分解为最有可能出错的IF
另外,不要使用变量函数Left
和Right
而是使用字符串函数Left$
和Right$
这是一个极好的资源重新编码优化
将先前的答案重新裁剪如下:
c = "94811E-5"
If Len(c) = 8 Then
If IsNumeric(Left$(c, 5)) Then
If Right$(c, 3) = "E-5" Then c = Left$(c, Len(c) - 3) & "0" & Right$(c, 3)
End If
End If
MsgBox c
请显示您的代码我想我需要在最后一个if?之后添加下一个步骤,不是失败,只是添加一个额外的0 haha可以添加如果len(text)=8
。比如…和len(text=8)
因为len(Left(text,len(text)-3))=5(Left(text,len(text)-3)
对于长度=8是很特别的