Private Sub CommandButton1_Click() Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets(\'Sheet2\') lRow = ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row With ws.Cells(lRow, 1).Value =
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet2")
lRow = ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row
With ws
.Cells(lRow, 1).Value = UserForm1.TextBox1.Value
.Cells(lRow, 2).Value = UserForm1.TextBox2.Value
End With
End Sub
我正在使用此宏将一些条目添加到单元格中。我只想将 2 个值添加到文本框中,然后按下按钮将条目移动到 Sheet2 中。第二次,这 2 个条目将移动到第一个条目下方,依此类推...
每次我按下按钮时都会收到消息“运行时错误 1004”。
已经专业地识别了您的问题 mongoose36 ,但这里是如何在将来定位和解决类似问题的方法。
编译错误:变量未定义
在 VBE 的工具选项编辑器属性页中 设置 需要变量声明 Option Explicit 语句放在每个新创建的代码表的顶部。这将避免拼写错误等愚蠢的编码错误,并影响您在变量声明中使用正确的变量类型。未经声明而即时创建的变量都是变体/对象类型。
简单变量/常量拼写错误编译器错误(X1UP 应为 XLUP)
当您在运行时收到错误时,请转到 VBE 中的子程序并点击F8。编译器将立即发出编译错误消息并突出显示语句中有问题的部分。
虽然这不能解决所有的编译错误,但它可以快速、轻松地识别和纠正简单的错误。
附录-编译错误:语法错误
有一种特殊情况涉及变量拼写错误,需要加以解决。声明、赋值或使用名称以数字开头的变量是非法语法。语法错误优先于变量未定义错误;有两个错误,但报告的主要错误是语法错误。在这种情况下,整个代码行都会突出显示。
变量拼写错误编译器错误,数字作为第一个字符(1ROW 应该是 LROW)
您正在编写具有显式父工作表引用的良好代码,而不依赖于隐式 ActiveSheet 属性 。使用“需要变量声明”选项更进一步。使用 Option Explicit 被广泛认为是“最佳实践”。