Excel VBA 添加尾随零并保持 0.00

问题描述

我刚刚开始尝试用 Excel VBA 编写代码,所以如果这是一个愚蠢的问题,请原谅我。

我花了几个小时试图弄清楚如何让 38.8 和 1 之类的值显示为 38.80 和 1.00。我能得到的最好的结果是单元格显示正确的值,但实际上当你尝试移动它或用它做任何事情时它的实际值仍然是 38.8,在功能栏中它显示为 38.8

第 17 列是价格或双精度值,我需要始终保留两位小数。然后我需要将它移动到另一个单元格以添加到我用正则表达式替换的字符串中并保留小数位。

Sub MacroReplaceText()
' Declare variables
Dim RowNum As Integer
Dim StrNew As String
Dim DblPrice As Double
' Set starting point of row
RowNum = 2

Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
' Set pattern to search for
    regex.Pattern = "-.+"
' Set regex to only find first result
    regex.Global = False

'Loop through every row that has a value in column 11
Do While Cells(RowNum,11).Value <> ""
    'Set Price format
    Cells(RowNum,17).NumberFormat = "#,##0.00"
    DblPrice = Cells(RowNum,17)
    'Create replacement text string
    StrNew = "- " & Cells(RowNum,16) & " @ $" & DblPrice
    
   'Replace found pattern
   'Cells(RowNum,11) = "STC's " & Cells(RowNum,11)
   'Cells(RowNum,11) = regex.replace(Cells(RowNum,11),StrNew)
   'Cells(RowNum,15) = Cells(RowNum,11)
   
RowNum = RowNum + 1
Loop


End Sub

这是我正在处理的文本

Text needed to replace

这是运行宏后的结果

Result

任何帮助将不胜感激。

解决方法

我有点困惑。但是,如果您想将 DblPrice 保留为 Double,并且还希望 DblPrice 出现在您的字符串中,按照您在屏幕截图中显示的格式,那么您可以使用 vba Format 函数:

StrNew = "- " & Cells(RowNum,16) & " @ $" & Format(DblPrice,"Currency")

或类似的。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...