Jump to content
СофтФорум - всё о компьютерах и не только

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


Recommended Posts

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

Link to comment
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 Остановить и Вывести сообщение

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

Link to comment
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

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

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...