我想问一个非常简单的问题,也许对某些人来说这可能听起来很愚蠢。 有人告诉我,在Excel中复制和粘贴时,您应首先使用选择性粘贴和粘贴格式,然后使用值,然后保留任何前导零,否则它们将被删除。但其他人告诉其他方式,即第一个值,然后格式。如果我在复制后粘贴,我也没有注意到任何变化。
所以请告诉我这些人是否属实,如果是,那究竟是正确的顺序?
答案 0 :(得分:1)
哦,Excel转换的乐趣。你必须对你的不同情况保持谨慎。
是时候玩得开心了。试试这个: 在单元格A1中将数据格式化为文本并输入值010。 在单元格A2中,将格式保留为常规格式并输入010。
现在转到VBIDE中的即时窗口并执行以下命令:
? Typename(Range("A1").Value)
? Typename(Range("A2").Value)
A1是一个字符串,A2是双精度型。 如果您现在将A1的格式更改为General,则再次键入:
? Typename(Range("A1").Value)
它仍然是字符串 - 它仍然在前面有前导0!
但是:现在执行以下命令:
range("A1").Value = range("A1").Value
虽然这看起来像一个毫无意义的命令 - 它通过使用VBA有效地更新了单元格。 Excel现在将转换为双倍!!
? Typename(Range("A1").Value)
现在这是双倍的。
因此,在数据导致不同数据后更改格式,因为Excel正在进行巧妙的转换。但这取决于正在更新的细胞。只是更改单元格格式可能会改变该值,但不一定 - 如果用户按下F2并在单元格上输入,它可能会更改。可爱 - 谢谢你擅长聪明。
甚至不让我开始其他转换。
所以,我建议在大多数情况下,你应该首先格式化,然后是数据。
快乐的粘贴! :)
答案 1 :(得分:0)
单元格值和单元格格式是Excel中单元格的两个不同属性。
为了显示值,excel将单元格的格式应用于其值。因此,如果您的单元格包含数字且格式指定该数字应该具有前导零,则该数字将显示为前导零。 这不会改变基础值!
格式仅影响显示。
举个例子:
我们假设您的单元格将值5.5
保存为数值。应用格式0.00
会将该值显示为5.50
。应用格式0.00 min
将显示与5.50 min
相同的值。但是价值本身仍未改变5.5
- 这样,您可以要非常具体地说明如何显示数字,但仍然使用其普通值进行计算。当然,相同的原则适用于所有其他格式规则和数据类型。
所以无论你粘贴哪个方向 - 只要单元格最终得到正确的值和格式组合,你就会得到正确的结果。