我有两个包含来自不同来源的数据的工作表。我需要将数据复制到单个工作表并删除重复项。为了实现这个目标,我需要在两个工作表上格式化相同的所有数据。所有这些都已经编码,除了我有问题的一列数据。这些列包含百分比表示。在工作表A中,该值显示为.4386,相当于43.86%。我使用此代码可以毫无问题地转换值:
Worksheets("Verification").Range("F2:F2000").NumberFormat = "0.00%"
在工作表B中,相同的数据显示为43.86,但上面的代码将其更改为4386.00%。我也尝试将此行更改为.NumberFormat = "General\%"
,这几乎可以正常工作,但返回值为44%。我需要在代码中添加什么才能在工作表B上显示43.86%?
答案 0 :(得分:3)
很抱歉评论中的回复缓慢 - 我只会提交一个答案。
像拉尔夫说的那样,确保它们是相同的数字确实更好。 43.1
和.431
的号码不同。
For Each c In [A1:A10]
If c.Value < 1 Then
c.Value = c.Value * 100
End If
c.NumberFormat = "0.00\%"
Next c
结果:
答案 1 :(得分:1)
您在工作表B上的工作表A is the same data [...] as
43.86上声明.4386。因此,将43.86转换为4386.00%的Excel是正确的。也许您需要条件格式:当数字小于或等于1时,将其格式化为"0.00%"
,然后将其格式化为"0.00""%"""
。
然而,我认为在使用此解决方案比较工作表之间的数据时,您会遇到问题。因此,我会先将B表上的所有数字除以100,以使它们具有可比性。
请注意,仅仅通过制作数字&#34;看起来相似&#34;他们不一样。示例:在单元格A1中写入值1000,在单元格B1中也写入1000.然后将A1的数字格式更改为0
,将B1的数字格式更改为0,
(或更改为0.
外部美国)。 A1将显示1000
,而B1会显示1
。如果您在单元格C1 =A1=B1
中询问,则会得到TRUE
作为答案。