我收到一个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
例如,如果“ Medicare”不在下一行中,那么可以用VBA来在“私人”之后插入一行,然后在新行中放入“ Medicare”(列A)吗?如果“ Medicaid”不在下一行,然后在“ Medicare”之后插入一行-并将“ Medicaid”放在新行中,依此类推。谢谢你提前为你能提供任何帮助。
答案 0 :(得分: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会给你的动作宏版本。它并不是完美的,但像这样的东西,它会给你一个良好的开端。
答案 1 :(得分:0)
是的,这可以通过VBA轻松完成。这些是您需要采取的逻辑步骤:
遍历每一行; 每行; 检查A列中的文本和下面的单元格中的文本; 如果不需要采取任何措施,则不执行任何操作,然后转到下一行; 如果需要采取措施,则执行所需的措施;
您可以使用到目前为止的代码来更新您的问题,并详细描述您的确切位置,我很确定我们将为您提供帮助。请先在Google上搜索特定问题,然后再在此处提问。