excel - 范围变量(重新)赋值
问题描述
我有一个检查范围:
Dim myrange
myrange = Worksheets(1).Range("A1")
我想获得行+1的范围
myrange = Worksheets(1).Range("A1").Offset(1, 0)
但
myrange =myrange.Offset(1, 0)
抛出错误 424 需要对象
我也尝试定义我的变量
Dim myrange As Range
但随后在赋值时抛出错误 91 对象变量或未设置块变量
解决方案
Dim myrange
myrange = Worksheets(1).Range("A1")
在上面myrange
被声明为一个变体,而不是一个范围。当您分配它时Worksheets(1).Range("A1")
,您分配的是单元格的值,而不是设置范围对象。以下对其进行更正。
Dim myrange as range
SET myrange = Worksheets(1).Range("A1")
您可以从范围对象偏移,但不能从范围的值。一旦myrange
是Set
,以下应该工作。
Set myrange = myrange.Offset(1, 0)
myrange
现在设置为Worksheets(1).Range("A2")
. 这可以仔细检查,
Debug.Print myrange.Address(0, 0, external:=true)
推荐阅读
- java - Swagger UI 不显示来自自定义注释界面的响应模型
- python - 如何在 python 数据框中将 Object 转换为仅 int 数字?
- android - getGeoPoint() 方法在调用时返回 null。Firebase 集合中有超过 1 个文档
- javascript - 当有人加入服务器时,试图让 Discord 机器人写一条消息
- ios - 需要帮助制作 Swift Cookie Clicker 游戏自动保存
- sql - 使用日期分组
- android - 需要帮助从适配器 kotlin 打开 url
- java - 我如何在 firebase 中使用多个 wherelessthan?
- sql - 时间范围内的 Postgres SQL 归因
- r - 如何在 R 中设置.Seed 以在 Windows 操作系统上实现可重复性