Slant-shadow Posted December 13, 2016 Report Share Posted December 13, 2016 Всем привет. Можете помочь с макросом, который будет проверять каждую ячейку столбца и в том случае, если в тексте ячейки присутствует ошибка в проставлении скобок, останавливать работу макроса и выводить сообщение, в каком месте листа макрос обнаружил ошибку. Например, запись «Текст(текст)» будет правильно, а такая – «Текст)текст(» или «((( )) () ))» будут неправильными и для них следует вывести сообщение об ошибке. Quote Link to comment Share on other sites More sharing options...
AbraShwabraKadabra Posted December 14, 2016 Report Share Posted December 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 Остановить и Вывести сообщение Остановить и вывести сообщение сделайте сами. Quote Link to comment Share on other sites More sharing options...
AbraShwabraKadabra Posted December 14, 2016 Report Share Posted December 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 По окончании редактирования выделить столбец и снять окраску. Это удобнее, чем запинаться каждый раз за ошибку и перезапускать макрос. Quote Link to comment Share on other sites More sharing options...
Slant-shadow Posted December 26, 2016 Author Report Share Posted December 26, 2016 Спасибо Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.