Slant-shadow Опубликовано 13 декабря, 2016 Жалоба Поделиться Опубликовано 13 декабря, 2016 Всем привет. Можете помочь с макросом, который будет проверять каждую ячейку столбца и в том случае, если в тексте ячейки присутствует ошибка в проставлении скобок, останавливать работу макроса и выводить сообщение, в каком месте листа макрос обнаружил ошибку. Например, запись «Текст(текст)» будет правильно, а такая – «Текст)текст(» или «((( )) () ))» будут неправильными и для них следует вывести сообщение об ошибке. Ссылка на комментарий Поделиться на другие сайты Поделиться
AbraShwabraKadabra Опубликовано 14 декабря, 2016 Жалоба Поделиться Опубликовано 14 декабря, 2016 Для каждой текущей ячейки. Предположим, что в S содержимое ячейки. NumOpen=0 NumClose=0 Flag=0 kmax=len(S) for k=1 to kmax S1=mid$(S,k,1) if S1="(" then NumOpen=NumOpen+1 if S2=")" then NumClose=NumClose+1 if NumClose>NumOpen then Flag=1 next k if NumOpen<>NumClose then Flag=1 if Flag=1 then Остановить и Вывести сообщение Остановить и вывести сообщение сделайте сами. Ссылка на комментарий Поделиться на другие сайты Поделиться
AbraShwabraKadabra Опубликовано 14 декабря, 2016 Жалоба Поделиться Опубликовано 14 декабря, 2016 Можно покрасить все неверные ячейки красным: NumColomn=5 for NumRow=1 to NumRowMax NumOpen=0 NumClose=0 Flag=0 kmax=len(S) for k=1 to kmax S1=mid$(S,k,1) if S1="(" then NumOpen=NumOpen+1 if S2=")" then NumClose=NumClose+1 if NumClose>NumOpen then Flag=1 next k if Flag=1 then Cells(NumRow, NumColomn).Interior.Color = vbRed Next NumRow По окончании редактирования выделить столбец и снять окраску. Это удобнее, чем запинаться каждый раз за ошибку и перезапускать макрос. Ссылка на комментарий Поделиться на другие сайты Поделиться
Slant-shadow Опубликовано 26 декабря, 2016 Автор Жалоба Поделиться Опубликовано 26 декабря, 2016 Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти