Как передать данные из массива в значения диаграммы?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Zhanibek
Сообщения: 10
Зарегистрирован: 21 сен 2005, 15:07

Zhanibek, Возможно причина кроется именно в массиве, так как после некоторых тестов я пришёл к выводу, что существует некоторое ограничение, которое связано с общим количеством символов в этом массиве …
Voobshe programma svyazana s razrabotkoi neftyanuh mestorozhdenii. Eto analiz rezul'tatov testirovania skvazhin.
Periodicheski zameryaetsya davlenie cherez nekotorye neravnye promezhutki vremeni (obychno 20-30 zamerov).
Tak chto vryad li eto svyazano s razmerom massiva. Kogda cherez "add watch" smotru pered peredachei znachenii v diagrammu, on normal'no pokazivaet vse znachenia massiva.
Vopros ostaetsya otkrytym...
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

IMHO Область применения особого значения не имеет … а в своём предыдущем сообщении я говорил именно о количестве символов, которые содержат все элементы массива. И для уточнения моего предположения, предлагаю протестировать оба примера, где размерность массива одинакова, но при этом второй вариант непременно должен вызвать ошибку.

Код: Выделить всё

Dim iMassivOne(1 To 50) As Integer
Dim iMassivTwo(1 To 50) As Integer

For iCount = 1 To 50
    iMassivOne(iCount) = iCount
    iMassivTwo(iCount) = iCount * 0.5
Next

With Workbooks.Add(xlWBATChart).Charts(1)
    .ChartType = xlXYScatterSmooth
    With .SeriesCollection.NewSeries
         .XValues = iMassivOne
         .Values = iMassivTwo
    End With
End With

Код: Выделить всё

Dim iMassivOne(1 To 50) As Integer
Dim iMassivTwo(1 To 50) As Integer

For iCount = 1 To 50
    iMassivOne(iCount) = iCount
    iMassivTwo(iCount) = iCount * 125
Next

With Workbooks.Add(xlWBATChart).Charts(1)
    .ChartType = xlXYScatterSmooth
    With .SeriesCollection.NewSeries
         .XValues = iMassivOne
         .Values = iMassivTwo
    End With
End With
Zhanibek
Сообщения: 10
Зарегистрирован: 21 сен 2005, 15:07

IMHO Область применения особого значения не имеет … а в своём предыдущем сообщении я говорил именно о количестве символов, которые содержат все элементы массива. И для уточнения моего предположения, предлагаю протестировать оба примера, где размерность массива одинакова, но при этом второй вариант непременно должен вызвать ошибку.
Absolutno verno, ne rabotaet. Vozmozhno, eto i est' prichina moei problemy, poskol'ku ya obyavil kak variant a v massive DT_Range u menya drobi so mnogimi znakami posle zapyatoi.
Ya pravil'no ponyal ideu?
I est' li gotovaya funkcia okruglenia do kakogo-to znaka?
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Именно так, чем больше символов содержит каждый элемент массива, тем меньшую размерность должен иметь массив. Однако, даже если у нас будет массив, где наличествуют целые числовые значения, например {1;2;3;4;5;...80} то даже в этом случае число элементов массива не сможет превышать 100.
Можно использовать стандартные функции рабочего листа, например =ОКРУГЛ()/=ROUND() P.S. В VB6 появилась функция с аналогичным названием, но не смотря на это у неё есть свои особенности, которые несколько расходятся с привычным "школьным округлением"

P.S. При ответе на предыдущее сообщение цитировать его вовсе не обязательно.
Zhanibek
Сообщения: 10
Зарегистрирован: 21 сен 2005, 15:07

Pitalsya okruglyat' do 2 znakov...
To zhe samoe
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

К сожалению, я сейчас не имею возможности более подробно вникнуть в саму задачу, но есть подозрение, что Вы зря связались с макросами и формами.
Вполне можно было бы обойтись макросами, которые автоматизируют процесс написания формул. Да и если данные для диаграммы берутся из ячеек, то нет никаких ограничений....
Ответить