在VBA中,当我改变一列的格式时,相邻的一个也改变

我试图格式化两列 – 一个为“常规”,一个为“数字0.000”,但是当第二个格式化时,它将第一列的格式也更​​改为“数字0.000”。 如果我手动select列和更改格式,它工作正常。 为什么我的macros改变了两列的格式?

这是一个代码片段:

Range("C:C").Select Selection.NumberFormat = "General" Range("D:D").Select Selection.NumberFormat = "0.000" 

尽量避免使用。select,它可能会导致问题。 尝试:

 Range("C:C").NumberFormat = "General" Range("D:D").NumberFormat = "0.000" 

这对我行得通。

如果您手动select范围,它的工作原因是因为当您select范围时,macros中的.select部分将使用所选内容。 避免.select有助于确保不pipe你select了什么样的单元格/范围,它都将使用你想要的显式范围(在这里是Range(“C:C”)和Range(“D:D”))。