需要Excel宏编码 - 条件格式,重复项,仪表板数据

时间:2018-04-17 19:55:21

标签: excel vba excel-vba

我试图通过拼凑从多个帮助网站复制的各种示例来创建我自己的宏,但是在找到我的数据问题的解决方案方面没有取得任何成功。我有一个大文件,正在分析房间外的病人的结构化和非结构化活动。此分析中内置了一个数据透视表,以帮助分离出不同的结果层。如果解决方案是撤消一些表设置,那很好,但我希望有人有一个现成的解决方案。 以下是不同阶段的工作表的屏幕截图,供参考:

数据表

Data Sheet

我需要一个宏来复制与包含数字的条件格式化单元格相关的值,并从列a,b和c中提取它们的名字和姓氏,并将其粘贴到e,f和g中。粘贴数据后,需要从列a,b和c中删除它。我还需要它为第I,J和K列中的数据重复此过程,并将其作为第一个操作并使用相同的标准粘贴到M,N和O中。我正在尝试使用它来验证所有患者是否已经从名单中适当地拉出来并使用他们的#ID验证在活动中花费的时间。屏幕截图下方没有提供确认所有数字排列的验证方法。我已经记录了自己的排序,过滤,复制,粘贴和删除以创建宏,但我一直遇到的问题是条件格式化的单元格数量每天都有所不同,我还没有办法找到一个宏的动态范围,用于复制,粘贴和删除,并保持一切完整。我想我已经涵盖了一些人需要知道帮助的一切,但如果没有,请告诉我,我会澄清。感谢!!!

我认为这就是问题所在(在复制/粘贴部分):

ActiveSheet.ListObjects("ActivityList_STR").Range.AutoFilter Field:=3,_ 
    Criteria1:=RGB(255, 199, 206), Operator:=xlFilterCellColor Range
    ("A4:C8").Select Selection.Copy Range("E4").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
    SkipBlanks _ :=False, Transpose:=False Range("A4:C8").Select 
    Application.CutCopyMode = False Selection.ClearContents 

1 个答案:

答案 0 :(得分:0)

首先,将您的CF条件带入一个新列,以便您可以通过公式或VBA直接访问生成的TRUE / FALSE结果。

根据您拥有的Excel版本,您可以通过多种方式完成您在此处尝试的操作,包括:

  • 使用Variant Array将所有数据拉入VBA并使用Array 操作
  • 使用Variant Array将所有数据拉入VBA并使用Scripting 字典
  • 如果您已获得Excel 2016或更高版本,请使用PowerQuery提取数据 进入Excel,并在PowerQuery中根据需要调整它的形状 接口
  • 如果您已获得Excel 2013或更高版本,请将单独的表导入 DataModel并将它们连接到公共字段,以便您可以 使用数据透视表来执行您描述的报告。 (你可以这样做 即使您没有在Excel的SKU中使用PowerPivot加载项 已安装)

请注意,如果您在2010年和我上面提到的日期之间运行版本,则PowerQuery和PowerPivot都可以作为免费插件使用。

如果您对上述概念不熟悉,PowerQuery和PowerPivot是解决您问题的最简单方法,并且网上有足够的资源和YouTube上的视频可以帮助您入门。