单个单元格(A1)的范围地址有时会返回单元格范围地址“ A​​1:A1”而不是“ A1”

时间:2018-09-26 09:17:28

标签: excel vba excel-vba

当我尝试获取此表达式的范围地址时:

varAddr = RecColRef.TargetSheet.Cells(Val(strRow), 5).Address

大多数时候varAddr会包含"$E$7",但是有时它会包含"$E$7:$E$7"。 如何强制它始终返回单个单元格地址"$E$7"

编辑:从阻止其编译的代码中删除了多余的“(”)

2 个答案:

答案 0 :(得分:2)

尝试将其包装在SPLIT函数中

varAddr = split(RecColRef.TargetSheet.Cells(Val(strRow), 5).Address, ":")(0)

如果出现带有“:”的范围,则会将其分为两部分,例如Split("E1:E1", ":")并仅返回第一部分(0)-如果它是“正常”范围,例如E1仍会返回相同的内容。

答案 1 :(得分:1)

varAddr = RecColRef.TargetSheet.Cells(Val(strRow), 5).cells(1,1).Address