excel - 使用不同工作表上的单元格设置 Range 对象
问题描述
我一直在用单元格创建范围,但总是在选定的工作表上。我使用以下语法:
Dim r as Range
Set r = Range(Cells(1, 1), Cells(4, 2))
这一直有效。
我不想使用以下语法在不同的工作表上选择一个范围:
Dim r as Range
Set r = Worksheets("working").Range(Cells(1, 1), Cells(4, 2))
并得到以下错误:“应用程序定义或对象定义错误”。
在直接窗口中,我发现了一些非常有趣的东西..假设“r”已变暗并且选定的工作表是(1)(不是“工作”..这是(2))
r = Worksheets("working").Range("A1:D2") <<< THIS WORKS
r = Worksheets("working").Range(Cells(1, 1), Cells(4, 2)) << ERROR
r = Range(Cells(1, 1), Cells(4, 2)) <<< THIS WORKS (on selected sheet).
所以我很困惑,一直在梳理 SO 和其他网站。我知道我在做一些明显错误的事情......有人可以帮忙吗?
谢谢。
解决方案
限定所有对象(包括Cells
)。
Dim ws as Worksheet: Set ws = ThisWorkbook.Sheets("working")
Set r = ws.Range(ws.Cells(1, 1), ws.Cells(4, 2))
推荐阅读
- c# - 多个实体共享的 DDD 值对象
- laravel - Adldap::auth()->attempt(username, password) 总是返回 false
- laravel - 在 Laravel 中获取 URL 参数以验证登录控制器
- spring-integration - 消息丢失时 Spring 聚合器停止处理
- mysql - 无法在 MySQL 5.5.60 中设置数据类型 datetime(3)
- html - 引导导航栏元素未正确对齐
- c# - 如何在一行中写入多个字符串?
- image-processing - 使用 Python 从多个图像文件中提取文本
- javascript - ES6 功能组件 React.js 中的 Getter
- c# - 在 C++/CLI/C# 项目中启用“本机代码调试”会使应用程序崩溃