输入文件大约有 500,000 行。我想做的主要事情是在整个单元格范围内仅绘制 500,000 个单元格中的 10,000 个单元格。有没有办法以编程方式使用图表中的每 50 个单元格?如果不是,最好的方法是将每 50 个单元格复制到新位置,然后进行绘图?
最佳答案
对于相对少量的数据,可以将 x 和 y - 数据设置为单独单元格的列表。
这最好在 VBA 中以编程方式完成。电子表格被重命名为“A”,以保持数据字符串尽可能小。循环中 to
和 step
的值可能会有所不同:
[...]
Dim xS As String
Dim yS As String
xS = "="
yS = "="
For i = 1 To 23000 step 50
If i > 1 Then
xS = xS & ","
yS = yS & ","
End If
xS = xS & "A!$A$" & CStr(i)
yS = yS & "A!$B$" & CStr(i)
Next
ActiveChart.FullSeriesCollection(1).XValues = xS
ActiveChart.FullSeriesCollection(1).Values = yS
[...]
但是,我不确定 XValues 字符串的最大长度是多少。第一次测试显示至少有 4032 个字符。这将使每个 Chart-SeriesCollection 包含大约 350 到 450 个值。如果您添加大约 30 个系列集合,这可能是保存 10000 个值对的解决方案。 这有点麻烦,但只有当您的日期发生变化时才值得。
如果您的目标是绘制静态数字列表,最好以编程方式将单元格复制到第二个电子表格,然后绘制它们:
[...]
for i = 1 to 500000 step 50
destinationSheet.range(1,i/1000).value = sourceSheet.range(1,i).value
next
[...]
关于vba - 如何以编程方式使用 Excel 图表中的每个第 n 个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21459820/