运行时错误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。
简单variables/常量拼写错误编译器错误(X1UP应该是XLUP)
在运行期间收到错误时,请转到VBE中的子项并点击F8 。 编译器将立即发出编译错误消息,并突出显示该语句的有问题的部分。
虽然这不能解决所有的编译错误,但它使得简单的错误很快且容易识别和纠正。
附录 – 编译错误:语法错误
有一个涉及拼写错误variables的特殊情况需要解决。 声明,分配或使用名称以数字开头的variables是非法语法。 语法错误取代variables未定义的错误; 有两个错误,但主要报告的错误是语法错误。 在这种情况下,整个代码行被突出显示。
以数字作为第一个字符的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
。 命名用户表单也可以,但另一个更快写。