Excel VBA - поиск в одном и том же столбце по всем листам, поиск любых данных - PullRequest
0 голосов
/ 18 мая 2018

я могу делать простые удаления строк и т. Д. На отдельных листах в VBA, но это меня озадачило.

Мне нужно искать ЛЮБЫЕ данные (вероятно, это будет адрес электронной почты, но на самом деле это может быть любойтекст или число) в N1: N100, на всех открытых рабочих листах ... кроме Листа 1 (т.е. от Листа 2 до любого последнего открытого листа) ...

... если в N1 найдены какие-либо данные: Диапазон N100 для этого конкретного листа (например, Sheet2), затем ничего не делайте и ищите следующий лист (например, Sheet3) ... если данные не найдены, введите «NONE» в ячейку N1 (например, Sheet2) и затем перейдите к следующемулист (то есть лист 3).

Я видел код IF / ELSEIF / THEN от других людей, но все это, кажется, специфично для листа ... и, как я сказал, я немного не в своей тарелке с этой конкретной частью.

Это будет включать в себя больший фрагмент кода VBA, который я получил, который уже распределен по нескольким листам формата А4, хотя я уже исправил все ошибки: D

1 Ответ

0 голосов
/ 18 мая 2018
Sub WorksheetLoop()

         Dim WS_Count As Integer
         Dim I As Integer

         ' Set WS_Count equal to the number of worksheets in the active
         ' workbook.
         WS_Count = ActiveWorkbook.Worksheets.Count

         ' Begin the loop.
         For I = 1 To WS_Count

            ' Insert your code here.
            ' The following line shows how to reference a sheet within
            ' the loop by displaying the worksheet name in a dialog box.
            MsgBox ActiveWorkbook.Worksheets(I).Name

         Next I

      End Sub

Или вы можете перебрать все листы, используя цикл For Each:

Sub WorksheetLoop2()

         ' Declare Current as a worksheet object variable.
         Dim Current As Worksheet

         ' Loop through all of the worksheets in the active workbook.
         For Each Current In Worksheets

            ' Insert your code here.
            ' This line displays the worksheet name in a message box.
            MsgBox Current.Name
         Next

      End Sub
...