错误: – 运行时错误“1004”

Sub DataInputBox() Dim Id As Integer Dim Name As String Dim gender As String Id = InputBox("Enter in your id") Name = InputBox("Enter in your Name") gender = InputBox("Enter in your gender") Sheets(2).Range("a1").End(xlDown).Offset(1, 0).Value = Id Sheets(2).Range("a1").End(xlDown).Offset(1, 1).Value = Name Sheets(2).Range("a1").End(xlDown).Offset(1, 2).Value = gender End Sub 

上面的代码在excel中执行时遇到了运行时错误。

错误: – 运行时错误“1004”应用程序定义或对象定义的错误

您需要一些材料出现在Sheet2的 A列中。 从…开始:

在这里输入图像说明

我跑你的代码(没有错误地运行) ,得到:

在这里输入图像描述

只要确保你在正确的表格中有合理的数据。

试试看,

 Sheets(2).Range("a" & rows.count).End(xlUP).Offset(1, 0).Value = Id Sheets(2).Range("a" & rows.count).End(xlUP).Offset(0, 1).Value = Name Sheets(2).Range("a" & rows.count).End(xlUP).Offset(0, 2).Value = gender 

试试下面

 Sheets(2).Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Value = ID Sheets(2).Range("B" & Range("A" & Rows.Count).End(xlUp).Row).Value = Name Sheets(2).Range("C" & Range("A" & Rows.Count).End(xlUp).Row).Value = gender 

只是为了获得第四个解决scheme:

 Sub DataInputBox() Dim Id As Long Dim xName As String Dim gender As String Id = InputBox("Enter in your id") xName = InputBox("Enter in your Name") gender = InputBox("Enter in your gender") Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 3).Value = Array(ID, xName, gender) End Sub 

但是,最好不要将Name声明为variables,否则VBA可能会混乱,因为每个对象都有它作为属性。 ;)