首页 > 解决方案 > 无法将数字百分比转换为字符串

问题描述

我正在尝试运行“选择案例”,如果有问题的值属于指定范围,它会将值转换为字符串:

EX: if pr = 70% in cell,它将被转换为字符串为“70%”,而不是 0.7

我注意到,当仅使用占位符变量时,它会转换字符串(即“ p= = CStr(pr * 100 & "%")”与“ pr = CStr(pr * 100 & "%")

Private RCN_pars, pr As Range  'databody range of parameters 

Select Case pr.Column
            Case Range("RCNS_U[Enhanced Contrast]").Column, 
     Range("RCNS_U[Recon Mode]").Column, _
            Range("RCNS_U[IQ Enhance]").Column, 
     Range("RCNS_U[Interval]").Column, Range("RCNS_U[Flip/Rotate]").Column
                GoTo NextCell
            Case Range("RCNS_U[ASiR-V]").Column, Range("RCNS_U[Phase]").Column  'convert percentages
                pr = CStr(pr * 100) & "%"
        End Select

pr 被定义为数值 70,而不是“70%”

标签: excelvbaformat

解决方案


尝试使用.NumberFormata 的属性Range,如下所示:

pr.NumberFormat = "0.00%"

在您的代码中,它会是这样的:

Private RCN_pars, pr As Range  'databody range of parameters 

Select Case pr.Column
    Case Range("RCNS_U[Enhanced Contrast]").Column, _ 
        Range("RCNS_U[Recon Mode]").Column, _
        Range("RCNS_U[IQ Enhance]").Column, _
        Range("RCNS_U[Interval]").Column, Range("RCNS_U[Flip/Rotate]").Column
        GoTo NextCell
    Case Range("RCNS_U[ASiR-V]").Column, Range("RCNS_U[Phase]").Column  'convert percentages
        pr.NumberFormat = "0.00%"
End Select

推荐阅读