Проверка количества вхождений в Workbook VBA - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь пройтись по многим рабочим листам в рабочей книге и посмотреть, присутствуют ли foo и bar, а затем добавить к этой конкретной ячейке.По какой-то причине мой код перебирает листы, но не добавляет в ячейку.

Sub Main()

    Dim ws As Worksheets 
    Dim starting_ws As Worksheet
    Set starting_ws = ActiveSheet 
    ws_num = ThisWorkbook.Worksheets.Count
    ind = 9
    For I = 1 To ws_num
        ThisWorkbook.Worksheets(I).Activate
        Do While ind <= 39
            If Worksheets(I).Range("A" & ind).Value = "bar" And Worksheets(I).Range("G" & ind).Value = "foo" Then
                Worksheets("scrap").Range("C7").Value = Worksheets("scrap").Range("C7").Value + 1
                Exit For
            End If
            ind = ind + 1
        Loop

    Next

End Sub

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Возможно

Sub tgr()

    Dim ws As Worksheet
    Dim rOutput As Range
    Dim lCount As Long

    Set rOutput = ThisWorkbook.Sheets("scrap").Range("C7")

    For Each ws In ThisWorkbook.Worksheets
        lCount = lCount + WorksheetFunction.CountIfs(ws.Range("A9:A39"), "bar", ws.Range("G9:G39"), "foo")
    Next ws

    rOutput.Value = rOutput.Value + lCount

End Sub
0 голосов
/ 12 июня 2018

Попробуйте это:

Sub Main()

Dim ws As Worksheets 
Dim starting_ws As Worksheet
Set starting_ws = ActiveSheet 
ws_num = ThisWorkbook.Worksheets.Count
For I = 1 To ws_num
    ind = 9
    ThisWorkbook.Worksheets(I).Activate
    Do While ind <= 39
        If Worksheets(I).Range("A" & ind).Value = "bar" And Worksheets(I).Range("G" & ind).Value = "foo" Then
            Worksheets("scrap").Range("C7").Value = Worksheets("scrap").Range("C7").Value + 1
            Exit Do
        End If
        ind = ind + 1
    Loop

Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...