Vba 是Len(cell.Value)=0和cell.Value="&引用;Excel中的等效项?

Vba 是Len(cell.Value)=0和cell.Value="&引用;Excel中的等效项?,vba,excel,Vba,Excel,在Excel中计算工作表中单元格的值时,以下语句是否正确 如果且仅当Len(cell.Value)=0,则cell.Value=“”。 这意味着可以安全地检查单元格中是否有零个字符,而不是将单元格值与空字符串进行比较。我很确定您的说法是正确的。我已经用了很长一段时间了,从来没有对这个假设有过异议 我的二分钱:我不确定你是否能从这个把戏中获得很多表现,而且对其他人来说,理解cell.Value=”“的意义可能比Len(cell.Value)=0更容易。是的,他们做了同样的事情 但是,我建议您使用I

在Excel中计算工作表中单元格的值时,以下语句是否正确

如果且仅当
Len(cell.Value)=0
,则
cell.Value=“”。


这意味着可以安全地检查单元格中是否有零个字符,而不是将单元格值与空字符串进行比较。

我很确定您的说法是正确的。我已经用了很长一段时间了,从来没有对这个假设有过异议


我的二分钱:我不确定你是否能从这个把戏中获得很多表现,而且对其他人来说,理解
cell.Value=”“
的意义可能比
Len(cell.Value)=0

更容易。是的,他们做了同样的事情

但是,我建议您使用
IsEmpty
函数检查空单元格。如果在单元格中输入一个引号,
len
检查和
=”
检查都将表明单元格为空。但事实并非如此

IsEmpty
在这种情况下将返回false


而且它也更容易阅读。

我认为你是对的。我用一个循环对两个单元格进行了500000次评估,cell.Value=”“花费了48秒,而Len(cell.Value)=0花费了49秒。我认为没有差异主要是因为从单元格读取值的时间远远大于进行比较/长度检查所花费的时间。。。如果您使用字符串变量进行检查,您应该会发现使用'Len()=0'实际上大约是'=''速度的两倍。这一点很好。我评估了五个字符串,其中四个长度为10-15个字符,一个为空,5000万次,字符串=“的执行时间为26秒,Len(string)=0的执行时间为17秒。谢谢你的提示,很高兴知道。虽然超出了我的问题范围,但唯一需要注意的是,当使用Trim函数并因此将单元格的值作为字符串进行计算时,IsEmpty将不起作用。