Автор | Сообщение |
|
| постоянный участник
|
Пост N: 4144
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.04.15 22:50. Заголовок: Вопрос по Excel ?
Всем привет. Вопрос к знатокам Excel-я, как подсчитать сумму ВСЕХ значений с минусом и с плюсом ? Вот есть таблица из многих столбцов. Как сделать формулу для расчёта этих значений по 2-му столбцу ?
|
|
|
Ответов - 153
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|
|
| |
Пост N: 6589
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.09.17 23:00. Заголовок: Andrey пишет: Петр ..
Andrey пишет: цитата: | Петр пишет: цитата: 1. У обьекта oBook нет метода SaveAs А как тогда писать правильно ? |
| oExcel:SaveAs( cFileSave, xlCSV )
|
|
|
|
| постоянный участник
|
Пост N: 5521
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.09.17 23:07. Заголовок: WinXP) Версия: Exce..
WinXP) Версия: Excel 2003 (11.0) - открывает файлы нормально, без ошибок. Xin7) Версия: Excel 2014 (16.0) - при открытии этих же файлов, вылетает с ошибкой: oExcel := TOleAuto():New( "Excel.Application" ) oExcel:Visible := .F. // НЕ Показывать EXCEL oExcel:DisplayAlerts := .F. // не приставать с запросами oExcel:Workbooks:Open( cFileName, 0 ) // строка 90 oBook := oExcel:ActiveSheet() Почему ? При открытии этого файла напрямую в Экселе - вот такое окно: Пока не щёлкнешь по кнопке "Разрешить редактирование" для этого файла, программа на МиниГуи будет вылетать. Т.е. ОЛЕ в МиниГуи (для Экселя-2014) не может открыть такой файл ? Как тогда добиться совместимости, чтобы программа на всех ОФИСАХ работала ? Можно ли у себя в программе ввести параметр для разрешения редактирования таких файлов ?
|
|
|
|
| |
Пост N: 1124
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.09.17 08:53. Заголовок: Andrey пишет: Можно..
Andrey пишет: цитата: | Можно ли у себя в программе ввести параметр для разрешения редактирования таких файлов ? |
| Почитай в msdn про параметры метода open. Уверен там есть ответ.
|
|
|
|
| Администратор
|
Пост N: 3592
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.09.17 12:58. Заголовок: Опыт показывает, что..
Опыт показывает, что параметрами метода Open не обойдешься. Excel последних версий стал слишком "умный", и теперь сам решает, стоит ли ему открывать файл, или не стоит. То ему папка не нравится, то файл не такой. Иногда можно подшаманить настройки самого Excel, иногда надо удалять определенные ветки реестра. Но в общем случае для произвольного Office заранее неизвестно, согласится ли сей капризный продукт открыть файл, или его надо специально уговаривать.
|
|
|
|
| постоянный участник
|
Пост N: 5522
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.09.17 15:08. Заголовок: Haz пишет: Почитай ..
Haz пишет: цитата: | Почитай в msdn про параметры метода open. Уверен там есть ответ. |
| Нашел это - https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbooks-open-method-excel Ничего подходящего нет... Pasha пишет: цитата: | Но в общем случае для произвольного Office заранее неизвестно, согласится ли сей капризный продукт открыть файл, или его надо специально уговаривать. |
| Да фиг бы сним, нельзя открыть - так нельзя ! Главное чтобы моя программа не сваливалась по ОЛЕ-ошибке и юзеру окошко читаемое выдать ! Что только ему написать то пока не знаю.
|
|
|
|
| |
Пост N: 1125
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.09.17 15:20. Заголовок: Andrey пишет: Ничег..
|
|
|
|
| постоянный участник
|
Пост N: 1559
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.09.17 15:50. Заголовок: Andrey пишет: Главн..
Andrey пишет: цитата: | Главное чтобы моя программа не сваливалась по ОЛЕ-ошибке |
| Я вам про BEGIN SEQUENCE от нефиг делать писал? Организуйте обработку ошибок и будет вам счастье. К тому же цитата: | IF FILE( cFileSave ) // Чтобы Excel не приставал в вопросом "Такой файл уже существует" nErr := DELETEFILE(cFileSave) |
| - это очень "детский" код, под DOS - все нормально, в Win может быть источником трудноотлавливаемых ошибок.
|
|
|
|
| постоянный участник
|
Пост N: 5523
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.09.17 17:30. Заголовок: Haz пишет: Если не ..
Haz пишет: цитата: | Если не помогла , то в параметрах безопасности экселя нужно запретить эти предупреждения. |
| Я писал выше, что ручное разрешение на этот файл позволяет избавиться от ошибки. Но хочется сделать открытие файла по максиму - без ошибок ! Самое лучшее конечно предложение от Петра, сделать BEGIN SEQUENCE на открытие файла. Кстати проверял и Эксель 2014 и 2016 - файлы нормально открываются/конвертируются. У меня два файла в тесты записаны, вообще на диске лежат с 2014 года, может битые какие-то. Хотя Эксель 2003 их просто на ура конвертирует.... Чем дальше в лес, тем больше дров. Нашел кто создаёт такие хитро-битые файлы, вот один в качестве примера - https://cloud.mail.ru/public/Fd2b/kTZEAo8Nj
|
|
|
|
| |
Пост N: 6590
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.09.17 17:45. Заголовок: Haz пишет: как из ..
Haz пишет: да полно ссылок если погуглить.
|
|
|
|
| постоянный участник
|
Пост N: 5525
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.09.17 17:49. Заголовок: Dima попробуй у себя..
|
|
|
|
| |
Пост N: 6591
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.09.17 18:29. Заголовок: Andrey пишет: Dima ..
Andrey пишет: цитата: | Dima попробуй у себя открыть этот файл |
| у меня Excel 2003
|
|
|
|
|
| |
Пост N: 1126
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.09.17 22:48. Заголовок: Dima пишет: да полн..
Dima пишет: цитата: | да полно ссылок если погуглить. |
| Может и полнно, но мне не надо. Давно листал, и для себя запомнил, что эта гадость без танцев не отключается. И надо все валить на админа. Если с тех времен ссылок накидали то это талько хорошо. Ps. Вспоминается анекдот : Тяжело спорить с товарищем сталиным, ты ему цитату, а он тебе ссылку
|
|
|
|
| Администратор
|
Пост N: 3593
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.09.17 09:47. Заголовок: По поводу открытия ф..
По поводу открытия файлов в последних версиях Office: 2010 с обновлениями, 2013, 2016. Иногда помогают такие танцы с бубном, причем бубен обязательно должен быть изготовлен из шкур священных животных из Тибета, а шаман должен иметь сертификат от далай-ламы. Вот рецепты, которые я находил: Отключение проверки файлов офиса при открытии: Создайте в реестре ключ EnableOnLoad типа DWORD со значением 0 по пути HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\<Версия вашего Офиса, например 14.0 для 2010>\<Приложение, например Excel>\Security\FileValidation\ или HKEY_CURRENT_USER\Software\Microsoft\Office\<Версия вашего Офиса, например 14.0 для 2010>\<Приложение, например Excel>\Security\FileValidation\ Откройте вкладку Файл, чтобы переключиться в представление Microsoft Office Backstage. В меню Справка выберите пункт Параметры; отобразится диалоговое окно Параметры. Щелкните элемент Центр управления безопасностью и нажмите кнопку Параметры центра управления безопасностью. В центре управления безопасностью щелкните пункт Параметры блокировки файлов. Установите флажок Открывать выбранные типы файлов в режиме защищенного просмотра и разрешить редактирование. На приведенном ниже рисунке показана область Параметры блокировки файлов центра управления безопасностью. Было слелано следующее на компьютере: 1. Microsoft Office 2010 x32 был удален с компьютера, и установлен Microsoft Office 2013 x64 2. В реестре изменен след. параметр [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems] на SharedSection=1024,20480,1024 согласно ссылке http://www.commix.ru/settings/desktop-heap.html Смотреть - http://www.pixic.ru/i/2030R7U3V8X797r4.jpg В результате работы с большим количеством открытых экслевских, вордовских документов, вышеописанная проблема с зависанием приложений не появляется. и еще: На некоторых файлах строка Documents.Open последовательно зависает, причем никаких бросающихся в глаза различий между этими файлами и остальными нет. Ворд 2007, хотя файлы в формате doc. Раньше была проблема с длинными именами файлов - файл с длинным именем зависал, но проходил нормально после его переименования в нечто более короткое. Сейчас весь path включая имя файла - порядка 20 символов. http://www.sql.ru/forum/1135099/servis-zavisaet-pri-popytke-otkryt-vord Нашел! HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Resiliency\DisabledItems Вот это если почистить, то оно начинает работать. Буду чистить программно. Всем спасибо! Иногда помогает, иногда нет.
|
|
|
|
| постоянный участник
|
Пост N: 5526
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.09.17 11:09. Заголовок: Pasha СПАСИБО ! :sm..
Pasha СПАСИБО ! Петр пишет: цитата: | 1. У обьекта oBook нет метода SaveAs |
| Делаю так: oExcel := TOleAuto():New( "Excel.Application" ) oExcel:Visible := .F. oExcel:DisplayAlerts := .F. oExcel:Workbooks:Open( cFileName, 0 ) oExcel:SaveAs( cFileSave, xlCSV ) // строка 111 oExcel:Quit() Вылет по ошибке: Error Excel.Application/0 S_OK: SAVEAS Called from TOLEAUTO:SAVEAS(0) Called from XLSTOCSV(111) in module: Form_convert.prg Если делаю так: oExcel := TOleAuto():New( "Excel.Application" ) oExcel:Visible := .F. oExcel:DisplayAlerts := .F. oExcel:Workbooks:Open( cFileName, 0 ) oBook := oExcel:ActiveSheet() oBook:SaveAs( cFileSave, xlCSV ) // строка 111 oExcel:Quit() Вылета по ошибке НЕТ. И как тогда правильно писать ? Может ещё что-то нужно добавить/исправить в коде
|
|
|
|
| Администратор
|
Пост N: 3594
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.09.17 11:19. Заголовок: Метод SaveAs есть у ..
Метод SaveAs есть у объекта WorkBook, и Chart и WorkSheet Так что правильно как раз: oBook:SaveAs( cFileSave, xlCSV ) для таких вопросов есть хелп по Excel VBA, а еще такая классная вещь, как поисковик в браузере.
|
|
|
|
| постоянный участник
|
Пост N: 5527
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.09.17 11:47. Заголовок: Pasha пишет: для та..
Pasha пишет: цитата: | для таких вопросов есть хелп по Excel VBA, а еще такая классная вещь, как поисковик в браузере. |
| Спасибо ! На них не надеюсь, важно как на форуме у нас напишут !
|
|
|
|
| Администратор
|
Пост N: 3595
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.09.17 12:45. Заголовок: А набрать в яндексе ..
А набрать в яндексе "Excel SaveAs" влом ?
|
|
|
|
| постоянный участник
|
Пост N: 5529
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.09.17 13:32. Заголовок: Pasha пишет: А набр..
Pasha пишет: цитата: | А набрать в яндексе "Excel SaveAs" влом ? |
| Да смотрел я. Просто засомневался, из-за этого и спрашивал...
|
|
|
|
| Администратор
|
Пост N: 3596
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.09.17 07:50. Заголовок: Andrey пишет: oBook..
Andrey пишет: цитата: | oBook := oExcel:ActiveSheet() |
| Мне одному кажется, что в этом коде что-то не так ?
|
|
|
|
| |
Пост N: 6592
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.09.17 08:49. Заголовок: В ячейке имеем QWERT..
В ячейке имеем QWERTYASDEFG , нужно ASDEFG сделать жирным шрифтом. Руками получается и макрос смотрел , но не пойму как сделать на Harbour. Делал кто такие вещи ?
|
|
|
Ответов - 153
, стр:
1
2
3
4
5
6
7
8
All
[только новые]
|
|