Как сохранить range.value в массиве, используя vba для построения нескольких данных в одном графике - PullRequest
0 голосов
/ 13 мая 2019

Я создал лист, на котором пользователи вводят количество данных, чтобы определить расстояние и количество элементов внутри поверхности (это куча, которая будет перемещаться в почве).Затем макрос вычисляет положение каждого элемента на поверхности и упорядочивает его в столбце.Каждый столбец имеет переменное число элементов, каждому из которых назначается определенное значение X и Y. Теперь я хочу построить эти элементы с помощью точечной диаграммы.Я пытаюсь установить массив с Range, определенным столбцами X и Y, рассчитанными с помощью макроса в цикле for.Тем не менее, я получаю сообщение об ошибке, и я не могу добавить значение диапазона и сохранить их в массиве, чтобы сделать мой график.Я не понимаю, почему.

Я выполнил поиск по сайту, не нашел конкретного ответа на мою проблему (или не смог понять, может быть?).В течение двух дней я тоже безуспешно искал Google.

Dim e As Integer
e = Cells(6, 1).Value
Dim Nbr_Range() As Long, size As Integer, w As Integer
size = Cells(6, 1).Value
ReDim Nbr_Range(size)
For i = 1 To e
Cells(3, 23 + 2 * i).Value = "X"
Cells(3, 24 + 2 * i).Value = "Y"
Cells(2, 23 + 2 * i).Value = i
Range(Cells(2, 23 + 2 * i), Cells(2, 24 + 2 * i)).Merge
Cells(3, 23 + 2 * i).HorizontalAlignment = xlCenter
Cells(3, 24 + 2 * i).HorizontalAlignment = xlCenter
Cells(2, 23 + 2 * i).HorizontalAlignment = xlCenter
Cells(3, 23 + 2 * i).Borders(xlEdgeBottom).LineStyle = xlContinuous
Cells(3, 24 + 2 * i).Borders(xlEdgeBottom).LineStyle = xlContinuous
Value = Cells(6, 2 + i).Value
For w = 1 To Value
Cells(3 + w, 23 + 2 * i).Value = Cells(14, 2 + i)
cond = Cells(6, 2 + i).Value
If cond Mod 2 = 1 Then
Delta = (cond - 1) * 0.5
Cells(3 + w, 24 + 2 * i).Value = Delta * Cells(10, 2 + i).Value * -1 + (w - 1) * Cells(10, 2 + i).Value
End If
Next w
Next i

'--- работай, как и ожидалось, до тех пор, пока здесь ---- ---- 1006 *

Dim test As Range
test = Range(Cells(4, 25), Cells(4, 26))''' <-- Return "Empty", why?

Я бы хотел сделать что-то вроде

for q = 1 to e
Value = Cells(6, 2 + i).Value
test(q) = Range(Cells(4, 23+2*q), Cells(4+Value, 24+2*q))
next q

'- Затем построите график, используя заполненное значение диапазона ---

В настоящее время я получаю ошибку времени выполнения' 91 ': переменная объекта или переменная блока не установлена ​​

Я также получил другую ошибку в зависимости от типа, который я использую для определения переменной test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...