excel - 对象'_worksheet的方法'范围'失败
问题描述
我在 VBA 中有这段代码,我只是按照关于代码相同代码的教程进行操作,但结果总是显示“对象'_worksheet 的方法'范围'失败”这个代码有什么问题吗?
KktkRow = .Range("B5").Value
For KktkCol = 1 To 39
.Range(Sheet4.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value
Next KktkCol
解决方案
.Range(Sheet4.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value
With
某处有一块不适合Sheet4
. 删除Sheet4
限定符并保留.
点运算符使其看起来像这样(假设With
块不是 forSheet4
但源值在该表上):
.Range(.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value
这样,.Cells
成员调用将始终针对符合此条件的同一工作表进行.Range
;.Range
每当您使用 inner调用时.Cells
,请确保 inner.Cells
与 external 位于同一工作表上.Range
。
当内部调用根本不合格时,这与隐式 ActiveSheet 引用引起的常见问题非常相似:.Cells
.Range(Cells(1, KktkCol).Value).Value = .Cells(KktkRow, KktkCol).Value
^^^^^ if the ActiveSheet isn't the same as the parent of .Range ~> error 1004
如果With
块不是用于Sheet4
但目标单元格是,那么您需要.Range
使用它来限定:
Sheet4.Range(Sheet4.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value
如果With
块是 for Sheet4
,那么我们缺少上下文。正如约翰科尔曼指出的那样,Sheet4.Cells(KktkRow, KktkCol)
看起来很可疑(您是在从单元格中读取行号吗?)。
推荐阅读
- django - 如何将参数日期传递给 url 调度程序但作为命名参数
- sql - 您可以结合 case 和 top 语句来标记哪些值在前几个(Microsoft SQL)
- python - 格式化多维数组
- javascript - 有没有办法在导出对象的同时保留 JavaScript 中的变量?
- amazon-web-services - AWS 目标组运行状况不佳
- r - x 轴作为周数,辅助 x 轴作为日期
- html - 如果 Thymeleaf 中的条件。验证日期是 DayOfWeek。使用 th:text 它打印 MONDAY 但如果我进行检查它不起作用
- python - 将多个 blob 输入到 azure 函数 python
- http - 在 Google 搜索结果中仅显示不安全的网站
- python - 无法从数据框中删除行