проверьте все листы на истинное значение, получите окно сообщения с «Нет различий» в VBA - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь запустить макрос, который сначала будет искать ячейку и проверять значение рядом с ячейкой, и если ячейка = 0, получить окно сообщения «нет различий», если ячейка <> 0 перейдет на лист , Я хочу сделать это для разных листов в одной книге.

Sub Check()
'To check unaccounted difference in all sheets
Sheets("443000-jan").Select
    Cells.Find(what:="Unaccounted Diff").Select
    ActiveCell.Select
    ActiveCell.Offset(0, 1).Select
        If ActiveCell.Value = 0 Then
        MsgBox "No Differences Found"
       ElseIf ActiveCell.Values <> 0 Then
        Worksheets("443000-Jan").Visible = True
        Worksheets("443000-Jan").Activate
  End If
   Sheets("443001-SC").Select
    Cells.Find(what:="Unaccounted Diff").Select
    ActiveCell.Select
    ActiveCell.Offset(0, 1).Select
        If ActiveCell.Value = 0 Then
        MsgBox "No Differences Found"
       ElseIf ActiveCell.Values <> 0 Then
        Worksheets("443001-SC").Visible = True
        Worksheets("443001-SC").Activate

    End If

 End Sub

1 Ответ

0 голосов
/ 10 мая 2019

Предполагая, что вы хотите проверить, что для всех листов в рабочей книге вы должны пройти цикл. Вы должны будете смотреть на не использовать выбор повсюду. Я думаю, что было бы лучше, если бы вы присвоили значение .find переменной и использовали это в своем коде.

Sub LoopSheets()
Dim WS as Worksheet

  For Each WS In ActiveWorkbook.Worksheets
  If Worksheets(WS).Name <> “Master” Then
     Cells.Find(what:="Unaccounted Diff").Select
         ActiveCell.Offset(0, 1).Select
         If ActiveCell.Value = 0 Then
            MsgBox "No Differences Found"
        ElseIf ActiveCell.Values <> 0 Then
            WS.Visible = True
            WS.Activate
        End If     
   End If
  Next WS
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...