Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Проверка на правильность написанных данных


Рекомендуемые сообщения

Всем привет. Можете помочь с макросом, который будет проверять каждую ячейку столбца и в том случае, если в тексте ячейки присутствует ошибка в проставлении скобок, останавливать работу макроса и выводить сообщение, в каком месте листа макрос обнаружил ошибку. Например, запись «Текст(текст)» будет правильно, а такая – «Текст)текст(» или «((( )) () ))» будут неправильными и для них следует вывести сообщение об ошибке. 

Ссылка на комментарий
Поделиться на другие сайты

Для каждой текущей ячейки. Предположим, что в 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 Остановить и Вывести сообщение

Остановить и вывести сообщение сделайте сами.

Ссылка на комментарий
Поделиться на другие сайты

Можно покрасить все неверные ячейки красным:

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

По окончании редактирования выделить столбец и снять окраску. Это удобнее, чем запинаться каждый раз за ошибку и перезапускать макрос.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...