什么时候应该使用“.Value”

时间:2015-11-25 13:26:32

标签: excel vba

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

什么时候应该添加?

什么时候不是?

有必要吗?

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

1 个答案:

答案 0 :(得分:3)

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

您可以一个单元格中的值分配给另一个单元格。即使这看起来像复制/粘贴,它实际上是完全不同的,并且在某种意义上是一种低技术解决方案,当你想要做的就是转移价值。它可以使用例如Range("A1").Value = Range("B1").ValueRange("A1") = Range("B1")。后来工作的原因是ValueRange对象的默认属性 - 因此.Value隐含在您不属于的任何上下文中;将Range视为实际对象。

就个人而言,当我想要读取或设置单元格(或单元格范围)中的值时,我总是明确地使用Value,即使我可能依赖于{ {1}}是默认属性。大多数Excel VBA代码都大量使用Range对象和Range对象中的值。出于可读性的原因,您的代码最好明确何时使用范围与使用该值时。如果您按照SO上的Value标记,您会发现程序员依赖Range的默认属性相对较少。