VBA для Excel для вставки строк на основе текста в последовательных строках - PullRequest
0 голосов
/ 01 февраля 2019

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

   A       |    B     |     C
           |          |
Region A   | Date1    | Date2
           |          |
Center 123 |          |
           |          |
Private    | 4        | 6
Medicaid   | 60       | 58
Total      | 64       | 64
           |          |
Center 456 |          | 
           |          |
Private    | 4        | 4
Medicare   | 6        | 8
Hospice    | 2        | 2
Managed Cr | 8        | 10
Total      | 20       | 24

Но мне нужно, чтобы все плательщики / итоговые строки были перечислены для каждого центра:

Center 123

Private
Medicare
Medicaid
Medicaid Pnd
Veterans
Hospice
Assisted Lv
Managed Cr
Unassigned
Total
Bed Hold
Total with Bed Holds

Можно ли это сделать с помощьюVBA, например, вставить строку после «Private», если «Medicare» нет в следующей строке, а затем поместить «Medicare» в эту новую строку (столбец A)?Затем вставьте строку после «Medicare», если «Medicaid» нет в следующей строке, - и добавьте «Medicaid» в новую строку и т. Д. В списке.Заранее благодарю за любую помощь, которую вы можете предложить.

Ответы [ 2 ]

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

Да, это легко сделать с помощью VBA.Вот логические шаги, которые вы должны предпринять:

Пройдите через каждую строку;для каждого ряда;Проверьте текст в столбце A и текст в ячейке ниже;если никаких действий не требуется, ничего не делайте и переходите к следующему ряду;если требуется действие, выполнить желаемое действие;

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

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

Быстрый вопрос.Ваш заголовок vbscript, но ваш тег excel-vba.Не уверен, если вы знаете, что это две разные вещи.

Если вы ищете решение vba, также называемое макросом, вот вам идея.

Если вы делаете это для эстетики,превратить используемый диапазон в таблицу и скрыть строки, которые не имеют никаких значений.Это можно сделать без макроса.Но вот небольшой пример макроса:

Sub Button1_Click()
    Dim objTable As ListObject
    Worksheets("Sheet1").Activate
    ActiveSheet.UsedRange.Select
    Set objTable = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
    ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
    "<>"
End Sub

Если вы искали решение для VBScript, его схожий, но другой синтаксис.

И заметка, вы можете "Запись макросов" в Excel,Это позволит вам выполнить задачу вручную, а Excel предоставит вам макрокоманду действия.Он не идеален, но для таких вещей это даст вам хорошее начало.

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