2013-02-04 146 views
0

我有一个Excel 2010启用宏工作簿。该工作簿有几张纸。第一个工作表有一个导入csv文件的宏分配按钮。 csv文件加载到名为“Data”的现有工作表中。导入的csv文件加载到列1中,作为以下数据的标题。例如,A1被命名为“时间”,单元格A2向下是时间数据。单元格B1被命名为“温度”,单元格B2向下是与每次读取相关的温度数据。该工作手册在名为“温度曲线”的工作手册中有第三个现有工作表。我想通过引用“数据”表中的值自动在此表上绘制温度与时间的关系图。 (时间是x轴和Temp是y轴)VBA绘制动态范围

的问题是,加载到“数据”片导入的CSV文件将具有每次不同的行数。有时导入的csv文件可能有25行数据,其他时间可能有100,000行数据。比方说,我导入一个包含1000行数据的csv,该工作簿还绘制了空白单元格,因为我的图表已预先设置为捕获整个列。结果,图表数据被挤压到左侧。如果我将要绘制的行数预先设置为1000,那么具有多于1000行的下一个导入的csv文件将不会绘制超过1000行。

我试图渲染与#NA公式的单元格,以避免出现打印空白单元格,但这个解决方案创建一个巨大的文件。

有一种方法,以形成产生的数据的线图的宏:

y轴=(B2与一些最后的B细胞) 与 x轴=(A2至最后一个带有数字的单元格)

因此,每次打开工作簿并导入新的csv文件(不管有多少行)时,图形都会用数字绘制单元格,而不会绘制空白单元格?

任何援助将不胜感激。先谢谢你!

+0

http://www.techrepublic.com/blog/msoffice/two-ways-to-build-dynamic-charts-in-excel/7836第二个应该为你工作。 –

回答

0

通过使用动态范围,可以使一个可扩展和基于在您拥有的数据量合约命名范围。您将创建两个命名范围,一个用于x,另一个用于y,然后绘制范围。 现在不在PC中,但是这可以通过offset命令完成(动态范围)。

+0

谢谢MechEng。我使用了由Tim Williams提供的上面列出的链接,该技术完美无缺。谢谢你们花时间帮忙! – George