Избавились от одной строки, а взамен написали целых пять. Такая себе оптимизация.If fileIndex = 0 Then fullFileName = folderPath & baseFileName & fileExt Else fullFileName = folderPath & baseFileName & fileIndex & fileExt End If
Судя по экспоненциальному росту размеров современных приложений, индусам риса выдают пропорционально логарифму того что накодили за деньПотому что оплата сдельная. Чем больше написал, тем больше получил.![]()
В VBA (Visual Basic for Applications) можно использовать событие KeyPress или KeyDown для фильтрации вводимых символов в TextBox. Это позволяет контролировать, какие символы могут быть введены пользователем.бином Ньютона...
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Разрешаем только цифры, точку, запятую и Backspace
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 46 Or KeyAscii = 44) And KeyAscii <> 8 Then
KeyAscii = 0 ' Отменяем ввод символа
End If
End Sub
Как вариант, при каждом вводе символа можно проверять получившуюся строку на IsNumeric. Можно, конечно, возиться с Keypress, но тогда надо проверять, а была ли уже введена точка для дробного числа или пользователь вводит вторую точку. Опять же, введенную точку-разделитель для дробных частей нужно конвертировать в запятую для правильного перевода строки в число.Да как символы фильтровать понятно - это вообще без KeyPress реализовать просто в OnChange. Я вообще про реализацию вменяемого числового поля ввода, связанного с другими, с механизмами превалидации, поствалидации и т.д. Неужели никто до сих пор такого готового не реализовал за многие десятилетия существования Майкрософтовского VBA?
Да можно, конечно, и я такое делал, вопрос в том, что в итоге все равно получается костыльная дичь, где нибудь вообще есть нормально реализованные числовые поля ввода на VBA или это какое то нетривиальное действие? Я уж не спрашиваю про готовые библиотеки, которых, как я понимаю, тоже в природе нету...Как вариант, при каждом вводе символа можно проверять получившуюся строку на IsNumeric. Можно, конечно, возиться с Keypress, но тогда надо проверять, а была ли уже введена точка для дробного числа или пользователь вводит вторую точку. Опять же, введенную точку-разделитель для дробных частей нужно конвертировать в запятую для правильного перевода строки в число.
Но очень не хватает функции
Идея интересная. Попробую покопаться.приглашаем в кабинет оригинальный файл (Sancho позволил над ним издеваться), аккуратно вскрываем, накладываем пластырь от zollinger
... теперь только при эскпорте выделенного к имени JPG будет автоматом добавляться счётчик - без потверждения - _1, _2 ... и далее
при экспорте целиком страниц функционал без изменений.
...
и, кстати, Sancho предусмотрел ручное управление такими ситуациями
вот в это поле вполне можно руками вбивать свои "добавки"
Посмотреть вложение 171801
VBA7 ... если у вас распоследний Х6 со всеми заплатами ( а их там около 6-7 - насколько я помню) - то должен. На этой версии как раз VBA обновлялось с 6 на 7.(версия Х6, если что
Ну не на атомы, а на формы с bas модулямиVBA7 ... если у вас распоследний Х6 со всеми заплатами ( а их там около 6-7 - насколько я помню) - то должен. На этой версии как раз VBA обновлялось с 6 на 7.
Иначе придется "разбирать на атомы" и далее собирать обратно.
ну да ...с bas модулями
Всё зависит от того, что вы понимаете под словом "нормально". Кто-то ограничится проверкой "а число ли это вообще?" при выходе из текстбокса, а кто-то захочет контролировать ввод посимвольно, не разрешая вводить буквы и прочее, непохожее на цифры. В идеале можно сделать унаследованный от текстбокса класс, который будет отсеивать лишние символы, разрешая только то, что задано битами флагов.где нибудь вообще есть нормально реализованные числовые поля ввода на VBA
В идеале можно сделать все что угодно, но где они эти реализации? Я ни в одном макросе VBA не видел вменяемой реализации ввода числа с плавающей точкой, чтобы хотя б как в винапишном окне былоВ идеале можно сделать
И как там в винапишном окне это всё происходит? Пользователь набирает цифры, набирает точку, набирает цифры после запятой и нажимает Ентер?реализации ввода числа с плавающей точкой, чтобы хотя б как в винапишном окне было