何时应该使用“.Value”

我是Visual Basic的初学者,主要用它编辑MS Excel文件。 当复制/粘贴(单元格)内容或其他值时,在某些情况下.value被添加。

何时应该添加?

什么时候不?

有必要吗?

如果我在不需要的地方使用它,会伤害我的代码吗?

在Excel VBA中, Range对象是相当丰富的事物,它对应于一个单元格或一系列单元格。 因此,它具有各种属性(它在给定的行中,可通过.Row属性访问,它具有内部颜色,可能的边界线,公式等等 – 所有这些都可以通过在点之后的正确属性访问)。其中一个属性。 它指的是单元格中的值 – 通常是数字或文本。 当使用CopyPaste时,不会使用它,因为这些方法在整个Range对象上使用 – 正如可以看到它们能够复制格式而不仅仅是原始值一样。

您可以一个单元格中的值分配给另一个单元格。 即使这看起来像复制/粘贴,但它确实是完全不同的,在某种意义上说,它只是一种低技术解决scheme,而您所要做的只是传递价值观。 可以使用Range("A1").Value = Range("B1").ValueRange("A1") = Range("B1") 。 后面的原因是ValueRange对象的默认属性 – 因此.Value隐含在任何你不把Range当作实际对象的上下文中。

就个人而言,当我想要读取或设置单元格(或单元格范围)中的Value时,我总是明确地使用Value ,即使我可以依靠Value是默认属性的事实。 大多数Excel VBA代码大量使用Range对象和Range对象中的值。 出于可读性的原因,对于代码来说,明确使用范围的时间和使用值的时间是个好主意。 如果你遵循SO上的excel-vba标签,你会发现程序员依赖Range的默认属性是相对罕见的。