VBA为Excel基于在连续的行中的文本插入行

问题描述 投票:0回答:2

我收到显示基于付款人型中心的患者数量的Excel报表。 A栏列出了中心的名称和付款人的类型。如果没有病人特定付款人类型,纳税人未在列表中列出。我想运行一个脚本来插入行作为占位符的地方未列出的付款人。例如,这是报告的输出:

   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来完成,例如,插入“私人”如果“医保”是不是下一行后的行 - 然后把“医保”新行(列)?然后插入行“医疗保险”后,如果“医疗补助”是不是其下一行的 - 并把“医疗补助”的新行中,等在列表中向下。谢谢你提前为你能提供任何帮助。

excel vba
2个回答
0
投票

快速的问题。您的标题是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会给你的动作宏版本。这不是完美的,但像这样的东西,它会给你一个良好的开端。


0
投票

是的,这可以很容易地用VBA完成。这些都是你需要采取的逻辑步骤:

通过每排走;每一行;检查在A列,并在下面的单元格文本的文本;如果不需要采取行动,什么都不做,转至下一行;如果需要动作,则执行期望的动作;

你可以用你到目前为止并在你被卡住正是细节描述代码更新您的问题,我敢肯定,我们将能够帮助你。你在提问前请先谷歌的一个具体问题。

© www.soinside.com 2019 - 2024. All rights reserved.