Excel VBA выводит каждый столбец на другой - PullRequest
0 голосов
/ 29 августа 2018

Тривиально сделать это в R с помощью пар команд (). Но в 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

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

Пожалуйста, попробуйте код ниже:

Set rng = Worksheets("No-Funding").Cells(x, 2)
Set rng = Worksheets("No-Funding").Range(Chr(64 + x) & 2)

Для получения дополнительной информации, пожалуйста, просмотрите следующую ссылку: EXCEL-VBA Изменить диапазон с помощью петли

0 голосов
/ 29 августа 2018

Это может дать вам управляемость. С 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
0 голосов
/ 29 августа 2018

То, что вы ищете, это синтаксис:

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, чтобы создать выбор диапазона цикла.

...