运行时错误1004 Excel 2013

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 

我正在使用这个macros来添加一些条目到单元格中。 我只想将2个值添加到文本框中,并按下button将条目移动到Sheet2中。 第二次,这两个条目将被移动到第一个条目下面,等等…

每次我按下button,我都会收到“运行时错误1004”消息。

你的问题已经被mongoose36熟练地识别出来了,但是这里是如何定位和解决将来的问题。

编译错误:variables未定义

在VBE工具中设置需要variables声明 ►选项►编辑器属性页面将把Option Explicit语句放在每个新创build的代码表的顶部。 这将避免像拼写错误这样的愚蠢的编码错误,也会影响你在variables声明中使用正确的variablestypes。 在没有声明的情况下即时创build的variables都是变体/对象types。

option_explicit
简单variables/常量拼写错误编译器错误(X1UP应该是XLUP)

在运行期间收到错误时,请转到VBE中的子项并点击F8 。 编译器将立即发出编译错误消息,并突出显示该语句的有问题的部分。

虽然这不能解决所有的编译错误,但它使得简单的错误很快且容易识别和纠正。

附录 – 编译错误:语法错误

有一个涉及拼写错误variables的特殊情况需要解决。 声明,分配或使用名称以数字开头的variables是非法语法。 语法错误取代variables未定义的错误; 有两个错误,但主要报告的错误是语法错误。 在这种情况下,整个代码行被突出显示。

option_explicit_number
以数字作为第一个字符的variables拼写错误的编译器错误(1ROW应该是LROW)

你正在用明确的父工作表引用编写好的代码,而不是依赖于隐式的ActiveSheet属性 。 使用Requirevariables声明选项更进一步。 使用Option Explicit被广泛认为是“最佳实践”。

更改ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row

ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

End(x l Up)中的粗体字符与l中的不同,不是1(1)。

同样在用户Me.TextBox1.Value您可以使用以下Me.TextBox1.Value 。 命名用户表单也可以,但另一个更快写。