Excel VBA设置单元格范围报错,求动态值下的正确单行写法
Excel VBA 动态Range地址写法修正
错误原因
原代码使用+连接字符串与数值类型的行号,VBA中+是算术运算符,仅当两端均为字符串时才会执行拼接操作,直接用数值与字符串相加会触发类型不匹配错误。
正确单行写法
字符串拼接方式
Set range5 = sht3.Range("B" & (fcell.Row + 1) & ":D" & lLastRow2)
- 用VBA的字符串连接符
&替代+ - 给
fcell.Row + 1添加括号,确保先完成数值计算再参与字符串拼接
更健壮的Cells构造方式
推荐使用Cells对象构造Range,避免字符串拼接可能带来的格式错误:
Set range5 = sht3.Range(sht3.Cells(fcell.Row + 1, "B"), sht3.Cells(lLastRow2, "D"))
这种写法直接通过行号和列标识定位单元格,逻辑更清晰,无需处理字符串拼接细节。
内容的提问来源于stack exchange,提问作者lolqafoniya
相关产品推荐
相关产品推荐

