Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Excel VBA (часть 3)

Автор: JekG
Дата сообщения: 15.08.2012 19:26
grbdv
бла бла это формула
"=IF(ISNUMBER(DAY(R[-1]C[-3])),IF(DAY(RC[-3])<>DAY(R[-1]C[-3]),RC[-3],""""),RC[-3])"
просто не думаю что ее содержание в данном случае играет роль.
тото и оно что саму формулу для ячейки F5 макрос применяет верно и дает верный результат без указания ActiveSheet и ActiveWorkbook.... А вот автозаполнить нижестоящие ячейки этой формулой не получается.
Автор: grbdv
Дата сообщения: 15.08.2012 19:45
JekG
Для начала попробуй вот так. "SheetName" замени на реальное имя.

Код:
Sub sb_AutoFill()
Dim lngI As Long
With Sheets("SheetName")
lngI = .Cells(.Rows.Count, 5).End(xlUp).Row
.Range("F5").FormulaR1C1 = "бла бла"
.Range("F5").AutoFill Destination:=.Range("F5:F" & lngI), Type:=xlFillDefault
End With
End Sub
Автор: psiho
Дата сообщения: 16.08.2012 07:10

Цитата:
А вот автозаполнить нижестоящие ячейки этой формулой не получается.

Если из Вашей книги, где Вы собираетесь вставлять формулы, вызвать вышеназванную процедуру, написанную в личной книге макросов, как
Код: Run "Personal.xls!sb_AutoFill"
Автор: JekG
Дата сообщения: 16.08.2012 11:12
psiho
Запускать оттуда - имеется в виду кнопка на панели задач на которую повешен этот макрос.
Попробовал все вышенаписанное - все равно - не заполняет формулой, а тупо копирует первый результат
Автор: psiho
Дата сообщения: 16.08.2012 11:23

Цитата:
Попробовал все вышенаписанное - все равно - не заполняет формулой, а тупо копирует первый результат

Тогда давай пример в студию.
Автор: JekG
Дата сообщения: 16.08.2012 12:26
Короче говоря решил не париться с автозаполнением
Формула Range("F5:F" & Cells(Rows.Count, 1).End(xlUp).Row).Formula = "бла бла" вполне решает мои задачи
psiho grbdv Спасибо за советы друзья.

Автор: grbdv
Дата сообщения: 17.08.2012 00:52
JekG
В общем случае эту сложную конструкцию можно заменить:
Cells.SpecialCells(xlCellTypeLastCell).Formula = "бла бла"
Автор: Mishel917
Дата сообщения: 17.08.2012 21:41
Всем доброго времени суток!

На листе Excel создана таблица с данными, напрмер в диапазоне B5:E10.

Вопрос, - каким макросом можно сохранить лист (или книгу) с данными таблицы в формат XLM?

Добавлено:
... в формат XML?
Автор: grbdv
Дата сообщения: 17.08.2012 21:48
Mishel917
Ты так и не научился курить маны? Или в гугле забанен?
SaveAsXMLData

Добавлено:
SaveAs FileFormat:= xlXMLSpreadsheet еще в помощь, если чо...

Добавлено:
Держи. Перезалил
Автор: Mishel917
Дата сообщения: 17.08.2012 22:09
grbdv

Большое спасибо ! Я гуглил, но этот список превзошол все ожидания...

С этим вопросом задают ещё такой, - каким макросом сохранённые данные в XML формате вывести на печать в PDF формате?
Автор: grbdv
Дата сообщения: 17.08.2012 22:21
Mishel917
Обычный вывод на печать... На любой установленный виртуальный принтер, поддерживающий PDF. novaPDF - у меня, к примеру.

PrintOut

Ты хэлп начнешь читать когда нибудь?!
Нажми в окне редактора F2 - Object Browser, введи в поиск интересующий тебя термин и уже вопрос практически решен. Дальше - F1.

Добавлено:
Сорри. Это я про книгу. А XML - это же простой текстовый файл. Вопрос наверное к XML-редакторам. Если есть библиотеки, API, подключить и печатать... если уж все так необходимо из екселя делать... Не совсем ясна задача...
Автор: Mishel917
Дата сообщения: 17.08.2012 22:52
Задача такая. В налоговой накладной на листе Excel в графе “товары/услуги” пишут длинную запись. Подобрав оптимальный шрифт – Magneto № 10,5 и структуру бланка, таких длинных записей в накладной на одном листе формата А4 можно разместить всего четыре. Если необходима пятая запись, то её записывают на втором листе. Задача состоит в том чтобы получить больше записей на одном листе формата А4. Очевидно, если сохранить Дкумент.xls в формат .xml и распечатать в pdf формате, то таким образом можно получить больше записей на одном листе А4?
Автор: grbdv
Дата сообщения: 17.08.2012 23:18
Mishel917
Цитата:
Задача такая. В налоговой накладной на листе Excel в графе “товары/услуги” пишут длинную запись. Подобрав оптимальный шрифт – Magneto № 10,5 и структуру бланка, таких длинных записей в накладной на одном листе формата А4 можно разместить всего четыре. Если необходима пятая запись, то её записывают на втором листе. Задача состоит в том чтобы получить больше записей на одном листе формата А4. Очевидно, если сохранить Дкумент.xls в формат .xml и распечатать в pdf формате, то таким образом можно получить больше записей на одном листе А4?

Мишель, прости, но... вот все это... все, что выше... ты все это серьезно? Ты xml в глаза-то видел? Может мы о разных вещах говорим?

Единственное преимущество, которое даст тебе xml-вариант хранения xls-документа, это то, что ты его архиватором сожмешь более эффективно (раза в два-три). А экранное и печатное представления останутся теми же. Должны, по идее, остаться... Так задумано...

Да и постановка задачи не православна. Щаз влазит три, завтра же будет поле еще длинней. И уже три не будет влазить...

Меня смущает твое "очевидно". Поэтому я все с оговорками и многоточиями (я любитель, не профи). Можешь ты продемонстрировать свое "очевидно"?
Автор: Mishel917
Дата сообщения: 17.08.2012 23:55
Как пример, для себя взял программу OPZ. Там есть текстовый редактор и компактное размещение текста в pdf формате.
Автор: grbdv
Дата сообщения: 18.08.2012 00:05
Mishel917
Мы говорили об xls --> xml. Не так ли? Причем тут OPZ и прочая хрень?

Цитата:
взял программу OPZ. Там есть текстовый редактор и компактное размещение текста в pdf формате.

Компактней, чем в Excel? Ты чо седни курил?

Добавлено:
Все. Хватит. Оффтоп голимый. Вопросы только по VBA. За все остальное пойдешь в кнопку.
Автор: Mishel917
Дата сообщения: 18.08.2012 12:16
grbdv

Провёл пробу. Формат pdf уплотняет текст документа.xls через xml на 30%, для других вариантов текста уплотнение может достигать 40%. Остаётся эту технологию закодировать а VBA. Перехожу на вопросы по VBA.
Автор: Dogmatek
Дата сообщения: 18.08.2012 17:04
У меня вопрос, как можно запустить макрос программным путем (из другого макроса), при этом в случае, если макрос не найден, программа продолжала работать.

Метод Application.Run "Макрос", в случае если его не существует, программа прерывается.
Каким образом можно узнать существует ли данный макрос или нет?
Автор: grbdv
Дата сообщения: 18.08.2012 17:21
Dogmatek
Поставь обработчик ошибок...

В сторону "Microsoft Visual Basic for Applications Extensibility" (VBE6EXT.OLB) посмотреть, может там есть какой функционал для явной проверки наличия процедуры.

Автор: Mishel917
Дата сообщения: 19.08.2012 22:28
Всем доброго времени суток!

Для книги Excel из одного листа создан собственный xml-файл. Вопрос, - каким кодом vba для этого xml-файла создать собственный pdf-файл, для последующей печати pdf-файла?
Или так, - как распарсить XML документ в VBA и создать на основе полученных данных PDF-файл?
Автор: grbdv
Дата сообщения: 19.08.2012 22:51
Mishel917
Их какого приложения идет печать на pdf документа xml?

Думаю, надо подключить VBScript или работать через его объект.
И, будь ласка, выложи оба pdf, распечатанные с xls и из xml.
Автор: Mishel917
Дата сообщения: 19.08.2012 23:37
Здесь http://sts.gov.ua/elektronna-zvitnist/platnikam-podatkiv-pro-ele/programne-zabezpechennya-/opz-programne-zabezpechennya/ скачать приметы форматирования электронных документов. Пример отпечатать в Excel. Для выбранного создать собственный xml-файл (Сохранить XML). Для XML-файла в программе создаётся PDF для печати. Сравнить высоту текста в А4.
Автор: grbdv
Дата сообщения: 20.08.2012 00:03
Mishel917
Щаз, разбежались твой говносайт на говносуржике пережевывать! Тут РУССКОЯЗЫЧНЫЙ п. 1. главы VI Соглашения по использованию форум. Ты нюх совсем, походу, потерял. Тебе и так все на блюдце с каемкой несут под все твои капризы.

Выкладывай СВОИ экземпляры готовых пдф на ргхост или разговор окончен.
Автор: Mishel917
Дата сообщения: 20.08.2012 00:08

Цитата:
Их какого приложения идет печать на pdf документа xml?


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



Автор: grbdv
Дата сообщения: 20.08.2012 00:36
Mishel917
Слушай, ты русский язык понимаешь?

Вот ты писал:
Цитата:
Провёл пробу. Формат pdf уплотняет текст документа.xls через xml на 30%, для других вариантов текста уплотнение может достигать 40%


Вот я писал:
Цитата:
И, будь ласка, выложи оба pdf, распечатанные с xls и из xml.


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

Будешь дальше себя так же вести - я буду добиваться для тебя если не бана, то запрета на пост здесь. Не обессудь. А пока - выполни все мои просьбы, плз. Это ведь тебе надо, не мне...


Добавлено:
Напомню - обсуждаем ТОЛЬКО Ексель, ВБА и все связанное с этим. Остальное - фтопку.
Ну подключить сторонние библиотеки или API (нюансы - к вендору на форум) - поможем. Все остальное - оффтоп.
Автор: psiho
Дата сообщения: 20.08.2012 07:07

Цитата:
У меня вопрос, как можно запустить макрос программным путем (из другого макроса), при этом в случае, если макрос не найден, программа продолжала работать.

Вот Вам примерчик:
http://rghost.ru/39886352
Автор: grbdv
Дата сообщения: 20.08.2012 07:33
psiho
Цитата:
Поставь обработчик ошибок...

Вот спецом не стал код выкладывать, чтобы хоть как-то чела заинтересовать. Не получилось :)

Бзв, а за And и Description отвечаешь?
Цитата:
If Err.Number = 1004 And (Err.Description = "Не найден ...


Бзв, что по второй части моего ответа у тебя сэмпла не случилось?
Автор: psiho
Дата сообщения: 20.08.2012 08:44

Цитата:
Бзв, что по второй части моего ответа у тебя сэмпла не случилось?

Предоставляю тебе право предоставить примерчик.;)
Автор: grbdv
Дата сообщения: 20.08.2012 08:59
psiho
Первый раз улыбнулись. А второй? Тоже лыбу давить?

Цитата:
Цитата:Бзв, что по второй части моего ответа у тебя сэмпла не случилось?
Предоставляю тебе право предоставить примерчик.;)

Ты мне право предоставляешь?! Ты нюх потерял, бесталанный.

За локаль ответь, говнокодер.
Автор: psiho
Дата сообщения: 20.08.2012 12:22

Цитата:
Добавлено:
Напомню - обсуждаем ТОЛЬКО Ексель, ВБА и все связанное с этим. Остальное - фтопку.

Это во-первых.
Во-вторых, ты такими высказываниями себе "Advanced Member" за год заработал? Ты ещё не родился, когда я на форуме зарегился.
В-третьих, за оскорбление бан схлопочишь.
В-четвертых, знаешь почему на Красной площади сексом нельзя заниматься...?
Лучше бы человеку примером помог, а не непонятным советом.

Прошу прощения у мемберов и модераторов форума за офтоп.
Автор: grbdv
Дата сообщения: 20.08.2012 12:36
psiho
Цитата:
Ты ещё не родился, когда я на форуме зарегился.
И у тебя 75 см?

Цитата:
за оскорбление бан схлопочишь.
Зуб даешь? Ответь вначале за локаль. Ты первый раз в маргарин залез - не понял. Второй - отмолчался. Третий раз не ананас?

Цитата:
Прошу прощения у мемберов и модераторов форума за офтоп.

Я, как мембер, не в претензии за оффтоп. Не вопрос. А за остальное - ответь. Про то, как ты по моим постам себе репу склеиваешь и умняк гонишь. И то - лишь наполовину :)

В оскорбление - ткни пальцем. Впрочем, я сам:

Если ты за AND с локалью ответить не можешь - так повторюсь - говнокодер ты после этого.

А бесталанный - так смотри - все твои последние посты вслед за моими. Дрозд-перепевчик :)

Добавлено:
И, касательно
Цитата:
Лучше бы человеку примером помог, а не непонятным советом.

Читай шапку, старичок 75 см.

Цитата:
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа "Напишите мне такой-то макрос, я VBA не знаю и знать не хочу" не приветствуются.
Древняя мудрость: "Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его."(R)


Я же пояснил:
Цитата:
Вот спецом не стал код выкладывать, чтобы хоть как-то чела заинтересовать. Не получилось :)

Не получилось-то из-за тебя. Что там выкладывать-то было? Да и зачем? Это же хелп... Ф1, млин... Тебе нравится амплуа КО - мне нет.

Код: Sub sb_NoMacros()
On Error GoTo ErrHnd:
Application.Run "Dummy"
Exit Sub
ErrHnd:
Debug.Print Err.Number & " - "; Err.Description
End Sub

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127

Предыдущая тема: VS 2010


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.