在R中使用pairs()命令执行此操作很简单。但是在Excel VBA中,这似乎很复杂。
我有17列,大约有100行。我想将每一列都绘制在另一列上。将范围定义为A1:S100不是解决方案。
我应该绘制A对B,A对C,A对D等,直到A对S,然后对B对A,B对C,B对D等等,直到最后对S对R。能够弄清楚如何以数字方式写入范围并将其置于循环中。以下代码无效。
ActiveSheet.Shapes.AddChart(xlXYScatter).Select
ActiveChart.SetSourceData Source:=Range(Cells(k1, 1), Cells(k2, N)), PlotBy:=xlColumns
答案 0 :(得分:1)
您要寻找的是这样的语法:
Sub LoopRows()
Dim i As Integer
For i = 9 To 30
ActiveSheet.Range("L" & i & ":DC" & i).Interior.Color = RGB(100, 100, 100)
Next i
End Sub
此示例仅格式化每一行中单元格的颜色。注意我如何使用for循环创建循环范围选择。
答案 1 :(得分:1)
这可能会帮助您。我认为有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
答案 2 :(得分:0)
请尝试以下代码:
Set rng = Worksheets("No-Funding").Cells(x, 2)
Set rng = Worksheets("No-Funding").Range(Chr(64 + x) & 2)
有关更多信息,请查看以下链接: EXCEL-VBA Change a range with a loop