将IF语句与使用.value(VBA)的字符串一起使用

时间:2019-07-11 19:38:51

标签: excel vba access-vba

.value命令是否返回字符串,如果没有,则如何通过IF语句检查单元格是否包含正确的字符串。

我正在处理预算表,其中某个列设置了预算及其细分应转发到哪个部门。

match x %in% y

2 个答案:

答案 0 :(得分:0)

.Value确实返回了一个字符串,但是它看起来不像您在IF语句中包含它。

如果ws.Cells(3 + j,3) .value =“ SW”然后

答案 1 :(得分:0)

Range.Value返回一个Variant,其子类型取决于单元格的内容。

给出一个#N/A#VALUE#REF!或任何其他单元格错误值,它将返回一个Variant/Error,除了{ {1}}-尝试将其与字符串,数字值或表达式进行比较将抛出错误13“类型不匹配”。

您可以通过使用Variant函数评估变量子类型是否为Error来避免此运行时错误,最好是先将单元格的值捕获到局部IsError变量中,这样您就不必不必两次访问该单元。

给出一个无公式,无值,无内容的空单元格,它将返回VariantVariant/Empty函数可用于验证此变体子类型。

给出一个IsEmpty的值,它将返回一个Date。给定任何数值,它将返回Variant/Date。给定一个Variant/DoubleTRUE的值,它将返回一个FALSE

给定一个Variant/Boolean的值,它的确返回一个String


请注意,Variant/String类的默认成员是具有两个可选参数的隐藏Range属性:

Property _Default([RowIndex], [ColumnIndex]), default member of Excel.Range

如果未提供任何参数,则对[_Default]的显式调用是等效的。通常,显式成员调用比隐式默认成员调用更可取,并且无论隐式还是显式,调用均应保持一致:

.Value