URSA
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Excel. Автоматизация серии расчетов

Excel. Автоматизация серии расчетов

Ответ
Поиск в этой теме
Непрочитано 09.05.2022, 16:35 #1
Excel. Автоматизация серии расчетов
Cfytrr
 
Балка на балку, кирпич на кирпич...
 
Питер
Регистрация: 09.10.2007
Сообщений: 4,341

Приветствую.

Есть файл эксель где в результате очень сложных расчетов высчитывается значение Y в зависимости от X.
Нужно получить результирующий график серии вычислений Y(X). Можно ручками менять X и записывать на листочек Y, но это очень долго. Есть ли способ в другом файле ексель записать макрос который подставит серию Х и запишет серию результатов Y?

Нажмите на изображение для увеличения
Название: 00.jpg
Просмотров: 139
Размер:	183.8 Кб
ID:	247191

__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Просмотров: 2150
 
Непрочитано 09.05.2022, 17:16
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,803


Можно. Если в коде макроса не прописаны в явном виде ThisWorkBook либо ссылки на листы ThisWorkBook - он (макрос) будет работать с активной книгой. Можно в виде надстройки сделать
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.05.2022, 17:27
#3
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


Сергей812,
А Вас не затруднить сделать пример такого макроса?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 17:45
#4
Дмитррр

НЛО
 
Регистрация: 09.07.2007
Тутошние мы.
Сообщений: 5,044


Макросами слабо владею. Но если эти "очень сложные расчёты" умещаются на 1 лист, то ничего не мешает, сделать хоть несколько десятков копий этого листа, вбить в них разные Х и сделать отдельный лист чисто для графика. Минус только в том, что если понадобится менять расчёты, то это придётся делать во всех листах.

Если всё же макрос, то я бы делал тупо:
Код:
[Выделить все]
цикл от 1 до i
   в ячейку исходных данных Х вбить Х(i)
   в заготовку таблицы вбить Х(i)
   прочитать значение У там, где оно выводится
   У(i)=У
   в заготовку таблицы вбить У(i)
По заготовку таблицы построить график

Последний раз редактировалось Дмитррр, 09.05.2022 в 17:52.
Дмитррр вне форума  
 
Автор темы   Непрочитано 09.05.2022, 17:51
#5
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


Дмитррр,
Путь "скопировать 10 раз" и посчитать понятен, но к сожалению мало применим как раз из за того, что сложный расчет использует данные из нескольких листов.
Блок схема то же понятна, нужна реализация в коде. желательно пример работающий с пояснениями.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 17:55
#6
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 6,018


Cfytrr, а в чем проблема? Вы умеете пользоваться макросами?
Вроде бы более простой задачи сложно придумать....
Если надо срочно, могу попробовать написать на телефоне.....))))

----- добавлено через ~4 мин. -----
Ну хотя тут есть нюансы, в каком виде передается список Х, какой тип данных У....
v.psk вне форума  
 
Автор темы   Непрочитано 09.05.2022, 18:02
#7
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от v.psk Посмотреть сообщение
Вы умеете пользоваться макросами?
Нет. Только турбопаскаль в 1994 году 1 семестр
X и Y числа
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 18:03
#8
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 6,018


Если пошагово....
Обьявить переменные, удобно создать какой нибудь двумерный массив,
В него выгрузить данные х, в него записывать данные у после вычислений.
По проходу всех вычислений запись в ячейки таблицы.
Есть наверное и какой-то более экономный способ....
v.psk вне форума  
 
Непрочитано 09.05.2022, 18:10
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,803


Цитата:
Сообщение от Cfytrr Посмотреть сообщение
А Вас не затруднить сделать пример такого макроса?
лень за вас придумывать исходные данные в экселевском файле по картинке) Что откуда должен брать в каком виде...

Код:
[Выделить все]
Sub Test1()
  MsgBox ActiveWorkbook.ActiveSheet.Range("A1").Value
End Sub
выводит содержимое ячейки "А1" активного листа той книги, откуда был запущен макрос через Alt+F8


а если напишите так

Код:
[Выделить все]
Sub Test2()
  MsgBox ThisWorkbook.ActiveSheet.Range("A1").Value
End Sub
выводит содержимое ячейки "А1" активного листа той книги, где сам макрос - независимо откуда был запущен макрос через Alt+F8.
Сергей812 вне форума  
 
Непрочитано 09.05.2022, 18:10
#10
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 6,018


Ну допустим х - задан в 1й столбик, начиная со второй строки.
Он передает значение в ячейку cells(1, 4)
У - записывается вторым столбцом. Вычисляется в ячейке cells(1, 5)
Ну тогда покороче....
/лучше на всякий случай сохранить, пишу с тлф.


Sub icandoit ()
Dim i, j as long
i=2
Do while cells(i, 1) <>0
Cells(1, 4) =cells(i, 1)
Cells(i, 2) =cells(1, 5)
I=i+1
Loop
End sub

Последний раз редактировалось v.psk, 09.05.2022 в 18:19.
v.psk вне форума  
 
Автор темы   Непрочитано 09.05.2022, 18:11
#11
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


v.psk,
Супер, куда весь этот код вставлять?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 18:14
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,803


Цитата:
Сообщение от v.psk Посмотреть сообщение
Dim i, j as long
насколько помню, в VBA - вторая то переменная будет long, а первая скорее всего Variant.
Сергей812 вне форума  
 
Непрочитано 09.05.2022, 18:16
#13
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 6,018


Cfytrr, вкладка "разработчик" Есть в меню? Если нет - ее надо добавить, файл- параметры.

----- добавлено через 53 сек. -----
Сергей812, ну это я для строчек, не для результатов вычислений, даже лишнюю переменную обьявил))

----- добавлено через ~3 мин. -----
... Кстати поправил #10
v.psk вне форума  
 
Автор темы   Непрочитано 09.05.2022, 18:20
#14
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


Пример, файл с расчетом 01.xlsx, файл с диаграммой 02.xlsx. Если можно добавьте в файл 02.xlsx макрос который будет обрабатывать расчет из файла 01.xlsx
Вложения
Тип файла: xlsx 01.xlsx (9.1 Кб, 11 просмотров)
Тип файла: xlsx 02.xlsx (14.7 Кб, 8 просмотров)
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 18:24
#15
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 6,018


Ну если никто до завтра этого не сделает, постараюсь помочь)) с тлф. Непросто
v.psk вне форума  
 
Автор темы   Непрочитано 09.05.2022, 18:28
#16
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


v.psk,
Спасибо. В принципе если это проще то можно и в файле 01.xlsx все обрабатывать. по диапазону значений Х, макрос строит диапазон Y
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 18:50
2 | 1 #17
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,803


1. Открыть 01 файл.
2. Открыть 02 файл (если не ругнулся при этом на макросы - значит включить запрос разрешения работы макросов).
3. Выделить диапазон данных в файле 02 (без заголовка, оба столбца) и нажав ALT+F8, запустить макрос CalcSeries. Если что пойдет не так - макрос скажет УПС!)

----- добавлено через ~24 мин. -----
только если в исходном столбце X вместо вручную введенных значений окажутся формулы - макрос формулы затрет, скопировав поверх сами значения. Надо по другому данные забирать тогда, выделяя лишь выходной столбец, а входной столбец высчитывать смещением.
Вложения
Тип файла: zip 02.zip (15.5 Кб, 5 просмотров)
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.05.2022, 19:32
#18
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Выделить диапазон данных в файле 02 (без заголовка, оба столбца) и нажав ALT+F8, запустить макрос CalcSeries
Что то не выходит каменный цветок.
Нажмите на изображение для увеличения
Название: УПС.gif
Просмотров: 38
Размер:	754.2 Кб
ID:	247196
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 09.05.2022, 19:39
#19
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,803


файлы 01 и 02 открыты в одном запущенном приложении Excel?
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.05.2022, 19:45
#20
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,341
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
файлы 01 и 02 открыты в одном запущенном приложении Excel?
13 16 Эксель не хочет открывать в одном приложении. В 10 2003 открылось в одном приложении но макрос все равно не сработал.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.

Последний раз редактировалось Cfytrr, 09.05.2022 в 19:58.
Cfytrr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Excel. Автоматизация серии расчетов

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь текста в ячейках Excel и текста в AutoCad? Gedezuk5 AutoCAD 31 22.08.2018 17:20
Работа с Excel (файлами) через ActiveX kserg LISP 2 07.06.2018 15:26
Автоматизация. Формирование чертежей по таблице Excel НадеждаН Программирование 14 09.08.2017 23:28
Из какой серии ребристая плита покрытия? innersense Поиск литературы, чертежей, моделей и прочих материалов 0 20.09.2012 23:48
Возможно ли использование плит по серии ИЖ-568 как связевых sinner Конструкции зданий и сооружений 3 23.08.2012 16:43