如何检查VBA中的单元格格式(百分比格式)?

问题描述 投票:0回答:1

背景:

  • 有人给我提供了要以某种方式格式化的数据。
  • 我有一个VBA程序,它根据某些规则执行不同的检查。
  • 这些规则之一是所有百分比值均应为十进制格式。

我需要能够将值的格式设置为12.34%,而不是0.1234。

问题:

我找不到方法来提取百分比格式,因为Excel / VBA将格式自动转换为十进制。

我已经尝试过(以及其他尝试):

If CStr(Cells(j, i).Value) Like "*%*" Then

     ' add incorrectly formatted data location to report

End If

'I've also tried

If Cells(j, i).NumberFormat = "##.##%" Then

我最初尝试不使用字符串转换功能(Cstr()),但产生的结果相同。

我已经看到format()函数存在,但是它转换为不同的格式,而不是执行检查。

关于在不使用excel进行自动转换的情况下如何检查单元格的实际值(不更改数据)的任何想法?

我想尽可能避免使用正则表达式,因为它速度慢且数据集很大。

excel vba excel-vba formatting
1个回答
0
投票

使用.Text而不是.Value

If CStr(Cells(j, i).Text) Like "*%*" Then

(您甚至不需要CStr

© www.soinside.com 2019 - 2024. All rights reserved.