首页 > 解决方案 > Excel VBA绘制每一列与另一列

问题描述

在 R 中使用命令pairs() 执行此操作很简单。但在 Excel VBA 中,这似乎很复杂。

我有 17 列,大约 100 行。我想将每一列与另一列进行对比。将范围定义为 A1:S100 不是解决方案。

我应该绘制 A vs B、A vs C、A vs D 等等,直到 A vs S,然后 B vs A、B vs C、B vs D 等等,直到最后 S vs R。我无法计算了解如何以数字方式编写范围并将其放入循环中。以下代码将不起作用。

    ActiveSheet.Shapes.AddChart(xlXYScatter).Select
    ActiveChart.SetSourceData Source:=Range(Cells(k1, 1), Cells(k2, N)), PlotBy:=xlColumns

标签: excelvbaplotscatter-plot

解决方案


这可能会给你一个指导。有 17 列我认为你会遇到麻烦。

Sub x()

Dim r As Range, c1 As Long, c2 As Long, ch As Chart

Set r = Range("A1:D20")

For c1 = 1 To r.Columns.Count
    For c2 = 1 To r.Columns.Count
        If c1 <> c2 Then
            Set ch = ActiveSheet.Shapes.AddChart.Chart
            ch.ChartType = xlXYScatter
            ch.SetSourceData Source:=Union(r.Columns(c1), r.Columns(c2))
        End If
    Next c2
Next c1

End Sub

推荐阅读