我的任务如下:
-
必须将不同工作簿中的几张工作表复制到新工作簿中
-
-
新工作簿必须包含一个汇总表,其中列出了每个表名,并通过引用适当的公式来表示各个表的各种值
必须经常为不同的工作簿执行此操作,因此我们的想法是在VBA中执行此操作。
复制工作表很容易,在新工作表中列出表名很容易,但引用值会遇到问题。
总体思路如下
ActiveSheet.Range("A1").Value = "FooT"
ActiveSheet.Range("B1").Formula = "=FooT[[#Totals],[Quantity]]"
ActiveSheet.Range("C1").Formula = "=FooT[[#Totals],[Total List Price]]"
并迭代所有工作表。
设置A的值和B的公式按预期工作,并获得预期结果。
C的问题是,列标题实际上的格式不是“总标价”,而是
列表
价格“
如果我手动将公式添加到单元格中,列名也会显示在公式中。
这里发生了某种换行,我在VBA中尝试用
ActiveSheet.Range("C1").Formula = "=FooT[[#Totals],[Total" & vbCrLf & _
"List" & vbCrLf & _
"Price]]"
和vb\u Cr和vb\u Lf和vb\u换行,而不是vbCrLf。试图将C的公式设置为任何这些变化都会产生臭名昭著的错误1004。
从其中一张表中获取列标题的值,并在公式中使用它。这可能是一个潜在的解决方法,但我真的很想知道我缺少了什么,或者如何正确地构建这个公式字符串。