我编写了一个脚本,它创建了一个复杂的Excel工作表,其中包含来自多个数据源的数据。每张纸上的数据通常为1-5行。如果我可以创建另一张可以在线显示其他工作表数据的工作表(即,我在更改数据表时应该更改概述表),这将会很棒。我还需要使用各种样式格式化数据,并将概述表复制它们。最后,数据表具有不同的列宽。
我在想我只能导入纸张。当我将每个工作表保存到单个文件然后将它们作为OLE对象导入时,这种方法有效。有没有办法只用一个文件来达到同样的效果?
我需要告诉Excel“在Sheet1上的Sheet2上绘制A1:F3到单元格A1”。
“插入对象”让我可以创建Word文档或PP演示文稿并将其放入单元格中,但我无法创建新的Excel工作表并将其放入单元格中。是什么给了什么?
答案 0 :(得分:3)
您可以使用相机对象。
这将粘贴一个动态图片对象,只要数据表上的相应区域发生更改,该对象就会更新。
答案 1 :(得分:2)
如果您想自己构建一个解决方案,请尝试:
http://poi.apache.org/
Apache POI - 访问Microsoft格式文件的Java API
它非常易于使用......您可以轻松地格式化数据等...
我使用了Apache Digester(http://commons.apache.org/digester/)的POI 从XML文件中读取数据并创建Excel表格。
[编辑]使用这种方法,您可以读取现有的Excel工作表,复制工作表之间的相关单元格(包括格式)。但这并不能解决“不同的列宽”和“在线更新”。
答案 2 :(得分:2)
您可以使用以下语法引用其他工作表:
SheetName!Cell
所以在Sheet1,A1中的公式是
=Sheet2!B4
将对B4中的sheet2中的值进行实时引用
答案 3 :(得分:2)
复制范围。移动到要保留参考的单元格。选择“编辑”菜单时按住Shift键。注意有新的菜单项; “粘贴图片”和“粘贴图片链接”。您想要选择“粘贴图片链接”。现在每当“源”更新或格式改变时,“目的地”将更新。
Sub DemoIt()
'open excel and vbe windows side-by-side
' to see results when break points hit
'setup values
Range("A1").Select
ActiveCell.FormulaR1C1 = "A"
Range("A2").Select
ActiveCell.FormulaR1C1 = "B"
Range("A3").Select
ActiveCell.FormulaR1C1 = "C"
'select "source" values and copy
Range("A1:A3").Select
Selection.Copy
'move to "destination"
Range("B1").Select
'paste the "picture link"
ActiveSheet.Pictures.Paste(Link:=True).Select
Application.CutCopyMode = False
'check out results
Stop
'change values
Range("A2").Select
ActiveCell.FormulaR1C1 = "99"
'notice "destination" changed
Stop
'change formatting
Range("A3").Select
Selection.Font.Size = 20
'notice formatting changed
Stop
End Sub
答案 4 :(得分:0)
单个Excel工作簿可以包含多个工作表。一张表中的公式可以引用同一工作簿中另一张表中的单元格。