vba - 需要运行时错误“424”对象:Excel VBA
问题描述
我对编码非常陌生,我正在尝试将数据从一个工作表复制到特定行的另一个工作表。
Sub copycolumns()
Dim lastrow As Long, erow As Long
lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row '*/error shows here/*
For i = 2 To lastrow
Sheet1.Cells(i, 1).Copy
erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 1)
Sheet1.Cells(i, 3).Copy
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 2)
Sheet1.Cells(i, 6).Copy
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 3)
Next i
Application.CutCopyMode = False
Sheet2.Columns().AutoFit
Range("A1").Select
End Sub
我在这里缺少什么?
解决方案
错误 424“需要对象”只有一个原因会在该代码行中弹出。
Option Explicit
没有指定,Sheet1
也没有在任何地方声明。
查看“Sheet1”模块 (F4) 的属性,然后记下该(Name)
属性的值:
该Name
属性就是您在 Excel 中看到的。该(Name)
属性在 Excel 中的任何位置都不可见,并且该值决定了 VBA 自动为您声明的全局范围标识符的名称。
Sheet1.Cells(...)
如果没有工作表的属性(Name)
值为Sheet1
.
但Option Explicit
无论如何都要指定。错误 424 的原因Sheet1
是未声明,在运行时它是隐含Variant
的,默认值为Empty
,它不是对象,因此成员调用是非法的 - 只有一个对象可能有一个Cells
成员。
提示:给(Name)
属性一个有意义的名字,例如SummarySheet
. 然后你可以做SummarySheet.Cells(...)
。
推荐阅读
- javascript - 如何检查 DOM/HTML 元素属性名称在 Javascript/JSX 中是否有效?(防止无效字符异常)
- deep-learning - Torch 神经网络的自我实现
- javascript - 未捕获的错误:模块构建失败(来自 ./node_modules/rails-erb-loader/index.js):错误:rails-erb-loader 失败,代码:1
- r - RMarkdown 图像浮动
- python - Kivy 没有更新标签
- wolfram-mathematica - 如何将当前迭代的答案与 Mathematica 中的前一个进行比较
- node.js - VueJS 自定义组件导入有时有效
- c# - 使用 Graph SDK - C# 获取文件夹内容
- arrays - 快速根据案例名称过滤枚举
- android - 应用更新被拒绝,说明我的应用 Sush com.toto.sush 不符合使用 READ_SMS、SEND_SMS、READ_CALL_LOG 的条件