我正在写一个长宏,它实际上是复制和粘贴一堆东西。但是,我需要一些帮助来理解以下代码行的区别:
Something.Offset(0, -87) Like "-"
Something.Offset(0, -87)= "-"
Something.Offset(0, -87).Value= "-"
Something.Offset(0, -87) Like "*-*"
这是针对那些仅以“-”作为其数据的项目。
答案 0 :(得分:4)
简短的回答:如果单元格始终包含“-”,则它们是相同的。
长答案:
第一行使用Like运算符确定单元格的值是否与仅匹配字符串“-”的模式“-”匹配。
第二行与第三行相同,因为.value是Range的默认获取器。
第三行获取单元格的值,并将其与字符串“-”进行比较(如果您不需要Like功能,则应该使用该方法)。
第4行使用Like运算符确定单元格的值是否与模式“ *-*”匹配。 *是通配符,用于匹配0个或多个字符。它不仅对“-”有效,而且对“ ABC-EFG”,“ A-”,“-A”等有效。
的更多信息答案 1 :(得分:2)
因此.Value
是您在未指定范围后才调用的隐式属性,因此中间两个之间应该没有区别。
在中间的两个和最后一个之间,中间的将检查值是否完全等于减号,但最下面的一个将检查单元格是否包含减号。通配符*
允许在指定的一面有任何内容,因此,通过将两者都括起来,可以将其显示在单元格值的任何位置。本质上,Like
允许您使用可以找到here的不同符号来输入模式。还值得注意的是,like
通常用于字符串,=
通常用于数字。
最上面的一个与中间两个相同,因为您没有像上一个一样在比较字符串中添加任何模式运算符。
至少这是我对差异的理解。