У меня есть шаблон электронной таблицы, который пользователи заполняют данными и отправляют мне.Один столбец - это формула, в которую они вставляют значения, помимо прочих ошибок ввода.Я обработал все другие ошибки с помощью кода VBA «перед сохранением», но не могу понять, как сделать так, чтобы Excel проверил каждую ячейку в столбце, чтобы увидеть, является ли она формулой, и вывел окно с сообщением, если оно есть.
Я нашел эту статью, которая весьма полезна: https://docs.microsoft.com/en-us/office/vba/api/excel.range.hasformula, и это сработало до некоторой степени - я не хочу подсказку для выбора диапазона, поэтому я попытался с 1 ячейкой или с заданным диапазоном, EG, L12: L3000 (пользователи могут отправлять входные данные различного количества строк, но 3000 может охватить все потенциально. Если бы я мог включить в него синтаксис конца (xldown), хотя это было бы более идеальным!)
Я могу заставить его выбросить окно сообщения, если я выберу одну ячейку в качестве диапазона, и это значение, но не для нескольких ячеек одновременно, даже если у них есть значение среди них.Я слишком новичок, чтобы понять Looping, несмотря на попытки некоторое время!
Любая помощь будет принята с благодарностью!
Использование одной ячейки в качестве диапазона, использование нескольких ячеек в Col Lкак диапазон.код, который у меня есть, работает для одной ячейки, но не для нескольких ...
If DataInput.[L12].HasFormula = False Then
a = MsgBox("CAUTION: Formula in Column L appears to have been written over. Do you want to Save anyway?", vbYesNo)
If a = vbYes Then Cancel = False
End If
Ожидается: если где-нибудь в столбце L есть значение, оно будет циклически выполнено и найдет его.Затем появится всплывающее окно с запросом подтверждения, которое они хотят сохранить, или просто будут вставлены всплывающие предупреждающие формулы и отменено сохранение.