2015-08-27 4 views
0

Так что моему боссу мне нужна ошибка, чтобы проверить форму. Когда вы нажимаете на кнопку, пользователь должен находиться в первом столбце перед добавлением какой-либо информации, если нет, тогда ему нужно отобразить сообщение об ошибке, сообщающее им, что они должны находиться в первом столбце перед началом работы. Мы использовали ActiveCell.Offset для автоматического вставки данных, и если вы начинаете в любом другом столбце, кроме первого, информация отключается одной ячейкой.Как с ошибкой Проверьте весь столбец в VBA Excel?

Вот мой код ошибки для этого. Этот код находится в самой форме, и мне нужно вызвать его в модуле, который требуется для этой программы. Любая помощь wold получает высокую оценку.

Public Sub Error_Check() 
If Not Range(A1, [A1,048,576]) Then 
     MsgBox ("Please make sure you are in the Product Attribute Set column before proceeding.") 
    Else 
     ConfigGroup.Show 
End If 
End Sub 
+2

Ваш код не должен полагаться на то, где активная ячейка должна работать должным образом (скорее всего). Невозможно ли конкретно определить, куда должны идти новые вставки? –

ответ

1

Я вижу два возможных решения.

  1. Вместо кода, ссылающегося на активную ячейку, ссылку на первый столбец, т.е. SheetName.Columns(1)

  2. Если вы хотите сохранить код, основанный прочь ActiveCell.Offset, почему нет макроса выбрать ячейку в первый столбец для пользователя? Например, введите Cells(1,1).Select в начале кода.

+0

Единственный экземпляр, в котором это не работает, как указано, - это если им нужна строка, которую выбрал пользователь, но это было бы тривиальным дополнением. – ale10ander

+0

Итак, у меня есть модуль под названием ConfigGroupForm, который показывает форму при нажатии кнопки. Мне нужно, чтобы ошибка выполнялась при нажатии кнопки, поэтому как бы я вызвал sub из формы и поместил ее в модуль – KjosN1

+0

'Public Sub ConfigGroupForm() ConfigGroup.Error_Check End Sub' – KjosN1

Смежные вопросы