Вставить строки на основе текста в ячейку и ячейку ниже - PullRequest
0 голосов
/ 08 февраля 2019

Ниже приведен пример отчета Excel с данными о продажах в каждом офисе.В столбце А перечислены год, номер недели и продавец.Если на той неделе нет продаж для конкретного продавца, этот продавец не будет указан на этой неделе - но мне это нужно.Я хотел бы запустить скрипт для вставки строки в качестве заполнителя везде, где продавца нет в списке.

   A          | B          | C
              |            |    
2018          | Date1      | Date2
              |            |    
Week 1        |            |
              |            |    
Garcia, J     | 89         | 72
Lesh, P       | 64         | 91
Total         | 153        | 163
              |            |    
Week 2        |            |
              |            |    
Anastasio, T  | 40         | 44
Garcia, J     | 62         | 58
Houser, M     | 28         | 32
Rhoads, R     | 437        | 658
Total         | 657        | 792 
              |            |    

Но мне нужно, чтобы все продавцы были в списке.Так что мне нужно, чтобы он показывал:

   A          | B          | C
              |            |
2018          | Date1      | Date2
              |            |    
Week 1        |            |
              |            |    
Anastasio, T  |            |    
Garcia, J     | 89         | 72
Houser, M     |            |    
Lesh, P       | 64         | 91
Rhoads, R     |            |    
Total         | 153        | 163
              |            |    
Week 2        |            |
              |            |    
Anastasio, T  | 40         | 44
Garcia, J     | 62         | 58
Houser, M     | 28         | 32
Lesh, P       |            |    
Rhoads, R     | 437        | 658
Total         | 657        | 792 

Я новичок в VBA, поэтому у меня возникают проблемы с поиском кода для проверки текста в столбце A и ячейке ниже, и если текст в столбце A равен 'Anastasio,T 'и текст в ячейке ниже -' Garcia, J ', ничего не делать, в противном случае вставьте строку ниже' Anastasio, T 'и введите' Garcia, J 'в ячейку ниже' Anastasio, T '"и продолжайте для каждого продавца в спискеЛюбые предложения приветствуются.

1 Ответ

0 голосов
/ 12 февраля 2019

Один из подходов к этому - создать собственный шаблон отчета с указанием каждого продавца, а затем написать сценарий VBA для:

  1. Скопировать шаблон на новый лист
  2. Найдите имя каждого продавца в последнем отчете о продажах
  3. Скопируйте их данные на новый лист (который фактически оставит пустую строку, если у человека не было продаж)

Ваш первый шагможно было бы создать шаблоны, а затем либо использовать функцию записи макросов в Excel, либо провести исследование циклов «Для каждого» и «Если».Это должно помочь вам начать:

Sub salesChecker()

Dim templatePerson As Range
Dim templateSalespeople As Range   ' Set up a range covering all names on the template
Dim reportSalespeople As Range     ' Set up a range covering all names on the report
Dim reportPerson As Range


' Set where these ranges apply
Set templateSalespeople = ThisWorkbook.Worksheets(1).Range("A2:A20")  'Example only: you'll need to set ranges
Set reportSalespeople = ThisWorkbook.Worksheets(2).Range("A2:A20")    'Example only: you'll need to set ranges


' Loop though each person on the template
For Each templatePerson In templateSalespeople

    ' Check name against each person on the report
    For Each reportPerson In reportSalespeople

        ' If the names match then...
        If reportPerson.Value = templatePerson.Value Then

            ' Copy the value in the cell next to the person's name and paste into template
            reportPerson.Offset(0, 1).Copy Destination:=templatePerson.Offset(0, 1)

        End If

Next

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