我在一家图书馆工作,我会不时为图书管理员编写 VBA Excel 脚本来自动执行任务,这些任务通常围绕从报告中收集信息。我有一位热爱数据的图书管理员,他要求我对他的藏书进行自动化分类,并按非小说类杜威分类号分类。我之前曾按主题对他的整个藏书(他是一名儿童图书管理员)做过这件事。只有十几个主题/系列,因此我能够从整个庞大的图书馆报告中提前过滤每个主题标准,并在新工作表上为每个主题制作自己的表格。然后,当我用基于每个表的公式填充他的快照表时。很简单,如果他看到某些东西错误地通过了过滤器,就将其从表中删除,它会自动在快照表上重新计算,生活就变得美好了。
但是,现在他想要这个新的杜威分类号快照。杜威分类号有 157 个,因此为每个分类号创建新的表格/工作表实际上不是一个选择。问题是,当我提前过滤所有报告表时,在公式中编写代码以根据过滤结果获取数字,它被写成公式,并且一旦我取消过滤或过滤另一个条件集,数字就会发生变化,因为它是根据动态表格结果重新计算的。我需要将值硬编码到单元格中。这可能很容易,但我无论如何也找不到答案。
示例:根据一份包含所有儿童所在地非小说类图书的报告,共有 3155 件图书。第一个杜威分类部分是神秘类图书 000.000-001.999。他需要进行大量计算,但专注于第一列,他想知道有多少图书属于 000.000-001.999 范围。
rgNonFict.AdvancedFilter xlFilterInPlace, shCrit.Range("A3").CurrentRegion
shNFSnap.Range("C5") = "=SUBTOTAL(3,JRoomNF[BID])"
当我运行代码时,我需要它在单元格中写入“11”而不是 Subtotal 公式。我该怎么做?