为什么 Range 有效,而 Cells 无效?

2024-04-15

我试图通过将一个范围内的值分配给另一个范围来将一些数据从一个工作簿移动到另一个工作簿中。当我使用正常的 Range 语法指定目标范围 (Range("A1:B2")) 时,我的代码可以工作,但是如果我尝试使用 Range, Cells 语法 (Range(Cells(1,1),Cells(2) ,2))) 我的代码不起作用。

我激活目标工作簿 (ActiveWorkbook) 并在源工作簿 (ThisWorkbook) 中运行代码。

这段代码的工作原理:

ActiveWorkbook.Worksheets(1).Range("A1:B2").Value _
= ThisWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value

但这段代码没有:

ActiveWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value _
= ThisWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value

我得到的错误是运行时错误“1004”:应用程序定义或对象定义的错误。

有谁知道为什么使用 cells 对象会给我带来问题,或者是否还有其他我不知道的问题?


问题是Cells是不合格的,这意味着这些单元格引用的工作表根据代码所在的位置而不同。任何时候你打电话Range or Cells or Rows or UsedRange或返回 Range 对象的任何内容,并且您不指定它位于哪个工作表上,工作表将根据以下方式分配:

  • 在工作表的类模块中:该工作表无论处于活动状态如何
  • 在任何其他模块中:ActiveSheet

您有资格Range参考,但是Cells引用不合格,很可能指向 Activesheet。就像写作一样

ThisWorkbook.Worksheets(1).Range(ActiveSheet.Cells(1, 1), ActiveSheetCells(2, 2)).Value

除非 ThisWorkbook.Worksheets(1) 恰好处于活动状态,否则这当然没有任何意义。我经常喜欢使用 With 块,以便确保一切都完全合格。

With Sheets(1)
    .Range(.Cells(1,1), .Cells(2,2)).Value = "something"
End With

但是您引用了两个不同的工作表,因此最好使用短工作表变量,例如:

Dim shSource As Worksheet
Dim shDest As Worksheet

Set shSource = ThisWorkbook.Worksheets(1)
Set shDest = Workbooks("myBook").Worksheets(1)

shDest.Range(shDest.Cells(1, 1), shDest.Cells(2, 2)).Value = _
    shSource.Range(shSource.Cells(1, 1), shSource.Cells(2, 2)).Value

但实际上,如果你要硬编码Cells争论,你可以像这样清理它

shDest.Cells(1, 1).Resize(2, 2).Value = shSource.Cells(1, 1).Resize(2, 2).Value
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Range 有效,而 Cells 无效? 的相关文章

  • Excel UserForm 动态 TextBox 控件退出事件

    UPDATE 经过对对象浏览器的进一步研究 看来MSForms TextBox既没有实现 Name财产或 Exit事件 仅 Change事件 有没有办法确定具体是哪个TextBox生成更改事件 或者可以使用MSForms Control用这
  • 防止在 Windows 资源管理器中打开重复的文件夹或子文件夹

    我正在使用下面的代码打开特定文件夹 我需要在打开之前检查一下 如果是的话文件夹或子文件夹是否已在 Windows 资源管理器中打开 以防止重复 感谢任何有用的评论和答案 Sub Prevent opening duplicate folde
  • VBA添加图表标题

    我只想使用 vba 将图表标题添加到我的图表中 我实际上想对每张纸中的每个图表递归地执行此操作 但我什至无法让 1 个图表工作 这是我的代码 Dim chnam chnam Left ActiveSheet Name Len ActiveS
  • 如何在 C# 中将 excel ListObject 添加到给定工作表?

    我目前正在 C 中开发一个 Excel 插件 其中包含多种方法 表值函数 可供 Excel 用户和程序员 VBA 使用 如何编写一个方法 将新的 ListObject Excel 表 添加到给定的 Excel 工作表 并将给定的 DataT
  • VBA 窗体最多可以容纳多少个控件?

    我目前正在构建一个 Excel 2003 应用程序 该应用程序需要非常复杂的表单 并且担心控件数量的限制 目前它有 154 个控件 使用Me Controls Count 这应该是准确的 对吧 但可能只完成了大约三分之一 工作流程确实适合单
  • 带有 For 循环的多维数组 VBA

    尝试检查第一列中的值 即多维数组中的列 如果它匹配 则对另一列中与该行匹配的值进行排序 我认为我做错了 但这是我第一次搞乱多维数组 我是否需要在每个 for 循环中使用 UBound 和 LBound 来告诉它要查看哪一列 除了当前问题的答
  • 列表框错误“无法设置列表属性。属性值无效。”

    我有一个带有列表框 文本框 组合框和保存按钮的用户表单 下面是我的保存按钮代码 Private Sub cmdsave Click Dim x As Integer x Me ListBox1 ListCount If Me cmbtran
  • 如何让 selenium 等待页面在 Selenium - Excel VBA 包装器中完全加载?

    Selenium Excel VBA 的包装器使用什么代码或函数 以便程序将等待页面完全加载然后执行其他命令 最新版本在执行所需操作之前隐式等待目标元素存在 例如 driver FindElementById Click 默认情况下会在抛出
  • 元素不存在,尽管它具有 ID 属性

    在 selenium excel vba 中 我试图了解有关如何处理 CSS 选择器的更多信息 我很想知道 因为在检查带有 ID 的元素并运行代码时 我收到一条消息 指出未找到该元素 这是到目前为止的代码 Private bot As Ne
  • VBA:访问 JSON

    我正在处理 VBA 投影 但不确定如何访问此 JSON 中的 id 应该将 players 设置为什么才能在循环中获取 id 我已经用更多代码更新了问题 JSON event games players id 182759 Code Pri
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道
  • Excel Q - 带有二维数组的 SUMIFS

    我有一个二维数组 水平轴上的日期和垂直轴上的标识号 我想要以特定日期和 ID 为条件的总和 并且我想知道如何使用 SUMIFS 来执行此操作 由于某种原因 我似乎不能 因为数组是二维的 而标准范围是一维的 谁能给我关于我可以使用的其他公式的
  • VBA rand 如何使用上限和下限生成随机数?

    所以也许这是多余的 也许这就像问为什么大多数人生来就有 5 个手指 最后的简短答案总是 因为事情就是这样 而且它就是这样工作的 但我讨厌这个答案 该死的我想知道怎么做VBA 中的 Rnd 函数有效 Ms Office Excel 的 MSD
  • 如果字符串包含列表中的单词,则返回与列表值相邻的值

    目前我有一组单元格 每个单元格在无用的信息中都有一个唯一的标识符 我还有这些唯一标识符的列表 以及每个标识符对应的值 我想做的是找到一个单元格包含哪个标识符 如果有的话 然后输出相应的值 下面是一个例子 https i stack imgu
  • Excel - 根据选择创建图表的宏

    我想就以下问题寻求您的帮助 因为我必须创建大量图表 所以我想要一个宏来根据我的选择插入图表 由于我对 VBA 没有任何了解 但现在需要它 至少现在 我真的应该自己学习使用它 我将感谢您的帮助 基本上 我需要知道如何调整我记录的代码 以便根据
  • 在 PowerPoint 中查找文本并替换为 Excel 单元格中的文本

    我正在尝试查找 PowerPoint 幻灯片中的单词列表并将其替换为 Excel 文件中单元格中的值 我在 PowerPoint 中运行 VBA 但出现此错误 运行时错误 2147024809 80070057 指定的值超出范围 代码似乎停
  • 如何粘贴到Excel B列的最后一行?

    我需要将单元格从 H2 L2 一直向下剪切并将其粘贴到 B 列的最后一行 数据每次都会不同 所以我无法对任何范围进行硬编码 VBA 代码会很好 从 H2 L2 向下剪切并粘贴 插入到 B 列的最后一行 到目前为止我得到了 Range H2
  • 如何在 MS Word 中的每个标题末尾应用宏?

    我有一个包含各种标题的文档 因此不一定是标题 1 或标题 2 而是所有类型的标题 我想做的是编写一个宏 例如 删除每个标题末尾的 2 个空格 例如 我们有 这是一个标题 在标题的最后 我会这样做 Selection Delete Unit
  • 复制列中的所有单元格[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一张表 有 200 行 行间有一
  • 将所有工作簿工作表复制到新工作簿 VBA

    我正在使用此代码将工作簿中的每张工作表复制到新工作簿中 它工作正常 但它颠倒了工作表的顺序 是否有办法阻止它这样做 Sub copy copies all the sheets of the open workbook to a new o

随机推荐

  • 无法使用 Beautiful Soup 解析 html 表

    我对使用 Beautiful Soup 很陌生 我正在尝试从下面的 url 导入数据作为 pandas 数据框 但是 最终结果具有正确的列名称 但没有行号 我应该做什么呢 这是我的代码 from bs4 import BeautifulSo
  • NorthPolarStereo 的中心经度

    我想绘制北半球的极地立体图 底部为 180 这样我就可以强调太平洋地区 我正在使用 git 的最新 cartopy 并且可以使极地立体图没有问题 但我不知道如何更改图底部的经度 我尝试将经度范围设置为 180 180 但这没有帮助 并且 N
  • 已超出“max_user_connections”资源

    我有一个 MySQL Express Angular NodeJS 应用程序 有时当我登录时 我的节点控制台中会出现以下错误 类型错误 无法读取未定义的属性 查询 错误发生在我的passport local js文件 这是行 connect
  • 部署Java EE应用程序后执行任务

    我有一个 Java EE 应用程序 它应该在部署后启动与外部系统的同步过程 我怎样才能实现这个要求呢 下面列出了在 JavaEE 应用程序中获取生命周期回调的几种流行方法 创建 javax servlet ServletContextLis
  • Java Swing - 将 JLabel 中的图像放置到第二个 JLabel 上/上方(地图、玩家指示器)

    我有一个带有 GridBagLayout 的 JFrame 窗口 有一个带有图标的 JLabel 它是一张地图 现在我需要在地图上方显示另一张图片 玩家位置指示器 可以吗 怎么样 非常感谢 子类化 JLabel 并重写 Paint 方法 p
  • Kubernetes:如何从一个环境变量引用另一个环境变量?

    I ve a Deployment我使用以下方法公开 POD ID 的对象向下API https kubernetes io docs tasks inject data application environment variable e
  • 有没有一个好方法来保存socket.io消息历史记录

    我想记录socket io消息历史记录 即两个用户交谈的内容 以供以后使用 是否有一些socket io内置函数可以实现这一点 或者如果没有 有什么好的方法来实现它 首先 您需要某种方法来识别具有唯一 ID 的用户 该 ID 在用户断开连接
  • Ria 服务将复杂对象作为参数传递给查询域服务方法

    我在使用 WCF RIA 服务时遇到一些困难 类似于中指定的问题这个线程 https stackoverflow com questions 2330085 cant pass collection class as parameter t
  • 在 C#4.0 中从字符串构建 Linq 查询 - 最佳实践

    目前 我正在使用 LinqKit Ms 动态查询示例从字符串动态构建 Linq 表达式 这很好用 LinqKit http www albahari com nutshell linqkit aspx http www albahari c
  • 在 Mac OS 上使用 OpenMP 和 C++11

    我正在尝试在我的 C 11 代码中使用一些 OpenMP 多线程功能 例如 pragma omp parallel for 当我尝试使用以下命令进行编译时 clang std c 11 stdlib libc fopenmp main cp
  • 使用 Django 的 ORM 加速批量插入?

    我计划使用 django 的 ORM 将从约 750 个文件 每个约 250MB 中获取的 10 亿条记录上传到数据库 目前每个文件需要大约 20 分钟来处理 我想知道是否有任何方法可以加速这个过程 我采取了以下措施 使用 transact
  • LINQ 语句比“foreach”循环更快吗?

    我正在编写一个网格渲染管理器 并认为将使用相同着色器的所有网格进行分组 然后在我处于该着色器通道中时渲染它们是一个好主意 我目前正在使用foreach循环 但想知道使用 LINQ 是否可以提高性能 为什么 LINQ 应该更快 它还在内部使用
  • 如何获取 ember 应用程序控制器中模板复选框的值

    我正在尝试查找控制器中是否选中了该复选框 这是我的模板 这是我的控制器 App Ember Application create App ApplicationController Ember Controller extend
  • PyQT 线程的最简单方法

    我在 PyQt 中有一个带有函数的 GUIaddImage image path 很容易想象 当需要将新图像添加到 QListWidget 中时会调用它 为了检测文件夹中的新图像 我使用threading Thread with watch
  • 如何使用 JSF 设置 HTTP 状态代码?

    我在 WebSphere Application Server 上使用 Apache Myfaces 2 2 我有一个 JSF 页面 它 测试 与文件系统和数据库的连接 当连接失败时 我想返回另一个HTTP状态代码 我怎样才能用 JSF 做
  • 按二级键对多维数组进行排序

    我有一个看起来像这样的数组 array 3 Fall Quarter 2012 gt array 2 20121018 gt array 1 agenda gt string 55 Fall 2012 Agenda 20121018 pdf
  • 无法让 ZClip 工作

    我知道它甚至在这个网站上也能工作 但只有当我通过 h1 元素触发它时 我需要通过图像 代表副本 触发它 但当我尝试时它根本不起作用 这是我的 JavaScript copyTxt click function alert Txt2Copy
  • 在 Java Card 上将 byte[] 转换为 Short[] 的快速方法

    我想在 Java 卡上优化 SHA 3 算法 我需要一种消耗更少内存的快速算法 可以轻松转换byte to short 或短 to byte 我当前的实现如下所示 private short byteToShort byte b int l
  • 表达 3.0 如何使用 app.locals.use 和 res.locals.use

    我在express3 0rc2上 如何使用app locals use 它还存在吗 和res locals use 我看到了这个https github com visionmedia express issues 1131 https g
  • 为什么 Range 有效,而 Cells 无效?

    我试图通过将一个范围内的值分配给另一个范围来将一些数据从一个工作簿移动到另一个工作簿中 当我使用正常的 Range 语法指定目标范围 Range A1 B2 时 我的代码可以工作 但是如果我尝试使用 Range Cells 语法 Range