Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые спецы. Два дня перелопачиваю инет ища примеры, но так ничего и не получилось. Задача в следующем Есть таблица с данными в разное время. Я построил гистограмму по первому ряду значений. Time An18 An17 An16 An15 An14 An13 An12 An11 An10 11:12:55 AM 2.05 1.98 1.89 1.87 1.74 2.71 2.91 2.25 1.29 11:12:57 AM 2.03 1.97 1.95 1.86 1.94 2.66 2.68 2.16 1.25 11:12:59 AM 1.96 1.92 1.94 1.92 1.79 2.47 2.33 2.08 1.20 11:13:01 AM 1.91 1.91 1.96 2.01 1.85 2.12 1.80 2.09 1.29 Теперь я хочу чтобы через, например, секунду график перерисовывался со следующей строкой значений (всего строк около 1000), т.е. рисовалась гистограмма для следующего момента времени и т.д. пока все не прорисуются. Так сказать анимацию сделать. С VBA не знаком вообще. Только с фортраном и паскалем (вычисления делал, никакой графики). Я пробовал записать макрос вручную меняя диапозон со значениями, так я понял смысл, где меняется диапозон в программе. Осталось его зациклить и вставить задержку. Поискав разные примеры в инете, что-то сделал, но при запуске появляется ошибка, и я ничего не пойму, что дальше. Помогите, пожалуйста. Выкладываю две версии как я пробовал реализовать макрос. Sub Macro5() ' ' Macro5 Macro ' Macro recorded 11/4/2010 ' ActiveChart.ChartType = xl3DColumnClustered Do Until i = 100 yy = i + 7 'хотел изменять только диапозон B8:AM8, начиная с 8 строки и дальше вниз ActiveChart.SetSourceData Source:=Sheets("Data").Range(Cells(yy, 3), Cells(yy, 20)), PlotBy:= _ xlRows y = Timer + 0.5 Do While Timer < y DoEvents Loop Loop End Sub Но получил ошибку Run-time error ‘1004’: Method ‘Cells’ of object ‘_Global’ failed Покополся дальше нашел пример на этом форуме Excel,VBA: Указание диапазонов для диаграммы и сделал так Sub Macro5() ' ' Macro5 Macro ' Macro recorded 11/4/2010 ' For i% = 1 To 50 yy = i + 7 a = Range(Cells(7, 3), Cells(7, 20)).Address b = Range(Cells(yy, 3), Cells(yy, 20)).Address Sheets("Data").ChartObjects(1).Activate ActiveChart.ChartType = xl3DColumnClustered ActiveChart.SetSourceData Source:=Sheets(1).Range(a + "," + b), _ PlotBy:=xlRows _ y = Timer + 0.5 Do While Timer < y DoEvents Loop Next i End Sub Вылазит та же ошибка и дебаг в обоих случаях ведет на строку где первый раз встречается Cells Подскажите, пожалуйста, как до ума довести программу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 13:38 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
alegarh, попробуйте полностью специфицировать Cells: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 13:46 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Спасибо, добавил эту строку первой строкой после Sub Sub Macro5() ThisWorkbook.Worksheets("Data").Cells For i% = 1 To 50 yy = i + 7 ... Выскакивает ошибка Object doen't support this property or method Пользуюсь Excell 2003, может синтаксис другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 17:19 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
alegarh, вы не поняли меня в своем коде замените Cells на то, что я предложил (тот же Cells, но с полным путем у нему) ЗЫ: публикуя код, обрамляйте его тэгами src ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 17:43 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Спасибо, огромное заработало. Если я правильно понял, то программа не понимала с какого листа и файла брать эти ячейки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 18:19 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Еще можно было попробовать сделать так: менять не исходный диапазон значений для чарта, а значения в этом диапазоне (т.е. сдвигать строки на одну вверх, подтягивая следующие строчки в исходную табличку для чарта). Естественно, для этого используется копия исходных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 18:34 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, не подскажите еще как определить число строк в таблице, чтобы в макрос каждый раз не залазить, для того чтобы количество шагов в For указать Заранее благодарен Нашел вот такую команду, но что-то смысл её мне до конца не понятен и она мне не понятно какое число выдает Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 19:15 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
alegarh, Вернее с этой я еще не пробовал пробовал с Код: plaintext по ошибке ту вставил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 19:19 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Все вроде разобрался как раз с помощью Код: plaintext Всем спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 19:25 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
Можно получить образец вашей таблички с данными и диаграммой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 19:26 |
|
||
|
Как сделать макрос для автоматического изменения исходных данных Диаграммы в Excel на VBA
|
|||
|---|---|---|---|
|
#18+
AndreTM, можно. куда кинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 19:33 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36939577&tid=2159285]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 380ms |

| 0 / 0 |
