vba - (VBA) 何时使用 .cell(1,1) 或 .cell(1,1) 值引用

标签 vba

在我的宏中,当我引用在单元格中找到的值时,我一直不一致地使用 .cell(r,c) 或 .cell(r,c).value。

dim c as variant 
c = sheet1.cell(1,1) 'or sheet1.cell(1,1).value

两个引用文献都是正确的还是有首选的方法?

最佳答案

.Value是范围对象的默认属性。因此,当您分配如下内容时:

myVar = myRange

它相当于 myVar = myRange.Value ,因为您分配的是变量而不是对象。

但是,如果您使用 Set , 像这样:
Set myObj = myRange

您将分配一个对象引用。关键词Set告诉 VBA 您正在分配一个对象引用。缺席 Set使 VBA 得出结论,您隐含地想要获得 .value ,范围的默认属性。

使用 .value 是一个很好的编程习惯明确地说,有两个原因:

1-它使代码更具可读性,因为读者不必隐式猜测发生了什么

2- 随着 VB.net 的出现, 关键字 Set已经消失;分配对象或普通变量的语法变得相同。由于这个原因,默认的属性习惯用法在 VB.net 中消失了。因此,好的做法是使用 .value在 VBA 中也是如此,因为它使您的代码最终移植到 VB.net 变得更加容易。

关于vba - (VBA) 何时使用 .cell(1,1) 或 .cell(1,1) 值引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42894223/

相关文章:

excel - VBA 单元格复制字符限制

VBA 将存储在字典中的单元格粘贴到另一个工作表中的单元格

使用两个日期的 SQL 查询

vba - 在 Outlook 尚未打开时发送邮件

ms-access - 如何向 Access 报告添加按钮以将其导出到 Excel/PDF?

excel - 使用 VBA 修改动态名称

vba - 在工作表 1 的数据下粘贴具有工作表 2 中特定单词的数据

VBA完整公式到单元格

javascript - 如何从 Internet Explorer DOM 调用 javascript

vba - 设置十六进制和十进制颜色的行为不同