Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пт мар 29, 2024 17:58

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 18 сообщений ]  На страницу 1, 2  Вперёд
Автор Сообщение
 Заголовок сообщения: Запись в Excel
СообщениеДобавлено: Вс фев 19, 2012 12:18 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
Добрый день! вот такая проблема, необходимо из супервайзора, по нажатию на кнопку, отправлять сообщение в файл Excel'a, есть скрипт, но он почему-то не работает!!!
вот сам скрипт:

' Launch Excel
set app = createobject("Excel.Application")

' Load a workbook
set wb = app.Workbooks.Open($ProjectPath + "\excelsheet.xls")

'define the cell you wish to use
set rng = wb.Activesheet.Range(CellonExcel-???)

'apply the value to the cell
rng.value = ExcelSetPoint - ???

'Save, close, quit and tidy up - to avoid Excel hanging around in background
app.ActiveWorkbook.Save
app.Workbooks.Close

set rng = nothing
set wb = nothing
app.Quit
set app = nothing

скрипт найден мною на сайте omron, но при нажатии на кнопку валетает log, а там где вопросы не понятно что писать!


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 13:08 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Скрип должен быть как VB, а не как скрипт супервайзора.
В папке проекта должен быть файл который собираемся открыть excelsheet.xls

-??? тут не знаки вопроса а какое то смещение
гугль в помошь http://support.microsoft.com/?kbid=291308

ActiveSheet.Cells это или координаты ячейки, или диапазон ячеек, может быть и именованной ячейкой.

там где скачал должно быть и описание как это использовать


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

Код:
Time[nn] = Hour+":"+min+":"+sec

'формирую строку по стандарту файла CSV
строка[nn]=Time[nn]+";"+msec[nn]+";"+text_1[nn]

IF строка[nn]!= "00:00:00;000;0," THEN
WriteMessage(отчёт_csv, -1, строка[nn], 1)


WriteMessage(отчёт_csv, -1, строка[nn], 1)

эта команда пишет новую строку в текстовик.


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 13:55 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
дело в том, что в формате .csv я сделал требуется именно в .xls!
Спасибо за помощь!!!


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 14:30 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
и еще вместо CellonExcel - пишется ячейка например Range("C2"), а вот вместо ExcelSetPoint, что писать? я пробовал переменную value_1, которая создана как текстовая и прикреплена к одной из вводимых строк в скаде :!:


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 16:05 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
http://www.myomron.com/index.php?article=1277&action=kb

там и пример рабочий для скачивания.

если с scv файлом всё получилось, можно просто создать xls, на вкладке внешние данные подключить текстовый scv и делать с данными что душе угодно, хоть сводную, хоть график, хоть макросов и формул на выборки напихать.

Например архив аварий супервайзора цепляется к экселю, а там удобный просмотр с сортировкой и прочим можно сделать


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 18:34 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
еще раз большое спасибо !!! вот с этого сайта я и скачал этот пример(получилось чтобы добавлял в Excel), вот только он добавляет в конкретные ячейки, а надо чтобы каждый раз добавлял новую строку, а WriteMessage в VBScript не хочет работать... как сделать чтобы он добавлял новую строку???

добавляет, но все же выскакивает log и функция прикрепленная к другой кнопке ViewReport не срабатывает... может что-нибудь напутал!? :?


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 19:45 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Код:
set rng = wb.Activesheet.Range(CellonExcel)

CellonExcel в этом примере текстовая точка супервайзора со значением A1.
меняешь на нужную ячейку и пишешь.

узнать сколько записей в столбце А можно заныкав где-то в экселе ячейку с формулой =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2;A:A)

похоже проще эксель как базу данных подключить


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вс фев 19, 2012 21:21 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
спасибо!!! подумаю над этим)


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Пн фев 20, 2012 08:30 
Не в сети

Регистрация: Пт июл 01, 2011 07:15
Сообщения: 32
Откуда: Ижевск
как вариант можно попробовать сделать вот так
Код:
set rng = wb.Activesheet.Cells(1,1)
rng.value = "Группа 1"
Dim i
for i = 2 to 33
set rng = wb.Activesheet.Range("A"+ValueToText(i))   'Range("A2:A33")
rng.value = mas_par_1(i-2)
next

каждый элемент массива mas_par_1 будет записан в новую строку в столбце "A"


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вт фев 21, 2012 13:27 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
у меня есть рабочий скрипт для записи строк в файл с расширением .csv, нельзя ли сделать чтобы копия из этого файла копировалась в файл с расширением .xls? хотя наверно не очень хорошая идея...

-Andy, т.е. просто такой код для каждого столбца, A, B, C,... и т.д. да?


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Вт фев 21, 2012 14:40 
Не в сети

Регистрация: Пт июл 01, 2011 07:15
Сообщения: 32
Откуда: Ижевск
vitaleklavrinenk писал(а):
-Andy, т.е. просто такой код для каждого столбца, A, B, C,... и т.д. да?

да, код можно использовать для любого желаемого столбца.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Запись в Excel
СообщениеДобавлено: Ср фев 22, 2012 13:46 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
-AndyRay, я протестировал Ваш код, в принципе хороший, но не совсем то что нужно :? (
"Группа 1" пишется в указанную ячейку, mas_par_1 - я его заменил на другую переменную, и он заносится в указанный столбец "А" с 2 по 33-ю строки один и тот же, к сожалению мне просто надо чтобы он один раз заносился, а следующий раз когда я буду вводить новое значение(чтобы оно заносилось новое), т.е. указал я параметры к примеру, длина и ширина в скаде, и по нажатию на кнопку чтоб они заносились в эксель, и при каждом нажатии чтоб формировалась и заносилась новая строка!!! Вот как-то так :)


В начало
 Профиль  
 
 Заголовок сообщения: Re: cx-supervisor
СообщениеДобавлено: Чт фев 23, 2012 19:11 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Олег писал(а):
[code]узнать сколько записей в столбце "А" можно заныкав где-то в экселе ячейку с формулой =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2;A:A)

не прокатывает? спросил число в этой ячейке, прибавил единицу получил адрес ячейки куда писать?

и не прокатывает вариант с подключением экселя как базы данных? в комплекте супервайзора есть пример, запись новой строки тупо через Add.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Запись в Excel
СообщениеДобавлено: Вс фев 26, 2012 17:00 
Не в сети

Регистрация: Вс фев 19, 2012 10:50
Сообщения: 29
Откуда: Волгоград
-Олег, я начинающий поэтому не очень все себе представляю!

[code]узнать сколько записей в столбце "А" можно заныкав где-то в экселе ячейку с формулой =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2;A:A)

заныкал я в экселе (в том экселевском файле куда хочу добавить строку) ячейку (в которую не планирую добавлять записи) например К2 = ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2;A:A)
тут возникают вопросы:
1) как спросить число в этой ячейке ?
2) потом когда спросил число, присвоил его значение переменной (в скрипте)PromResult, а дальше??? и надо же чтобы при каждом нажатии на кнопку промежуточные итоги обновлялись или это будет происходить автоматически?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Запись в Excel
СообщениеДобавлено: Вс фев 26, 2012 17:35 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
В на сайте myomron.com есть пример который нужно было скачать и посмотреть.
В нём есть кнопка со скриптом читающим значение из произвольной ячейки по её имени. Третья сверху, справа от неё ввод имени ячейки и прочитанное из этой ячейки значение. КАК МОЖНО ЭТО НЕ УВИДЕТЬ? Вы наверно даже не смотрели что по моей ссылке.

будет ли формула в экселе обновляться?
Попробовал с примером с сайта, нормально обновляется....
кстати
= ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2;A:A)
и
=СЧЁТ(A:A)
одно и тоже.

В примере обычный VBA, как обращаться к экселю или любой другой проге с VBA, нужно просто посмотреть справку к макросам этой проги. Наверняка там есть нужная команда.
Супервайзор здесь как бы не причём.

ячейка К2 как-то совсем на виду, лучше за границами окна, или скрыть столбец или шрифт на ячейку белый.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 18 сообщений ]  На страницу 1, 2  Вперёд

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3