Sign in to follow this  
Followers 0
Slant-shadow

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

4 posts in this topic

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

0

Share this post


Link to post
Share on other sites

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

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

0

Share this post


Link to post
Share on other sites

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

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

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

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0