Ошибка: - Ошибка времени выполнения "1004"

54
4

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" Определенная приложением или объектная ошибка

спросил(а) 2016-04-30T14:34:00+03:00 4 года, 2 месяца назад
1
Решение
77

Попробуйте,


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

ответил(а) 2016-04-30T15:06:00+03:00 4 года, 2 месяца назад
54

Вам понадобится материал, который будет присутствовать в столбце A листа 2. Начиная с:

enter image description here

Я запустил ваш код (бежал без ошибок) и получил:

enter image description here

Просто убедитесь, что у вас есть разумные данные на соответствующем листе.

ответил(а) 2016-04-30T15:05:00+03:00 4 года, 2 месяца назад
38

Просто для удовольствия четвертое решение:

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 как переменную или VBA может перепутаться, потому что так же хорошо, как и каждый объект имеет свойство. ;)

ответил(а) 2016-04-30T20:43:00+03:00 4 года, 2 месяца назад
39

Попробуйте ниже

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

ответил(а) 2016-04-30T18:03:00+03:00 4 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема