Вопрос № 54798: Уважаемые эксперты!
Помогите, пожалуйста, разобраться с проблемой. Перерыл весь рунет - ничего не помогло. Есть таблица. Во II ячейке содержаться некоторые значения. Необходимо, что бы при запуске макроса, происходило удаление строк, которые...Вопрос № 54800: Здравствуйте уважаемые эксперты,кто может помочь, заране спасибо.
1Как средствами VB6 можно сохранить все сообщения определенной темы или даты из Outlook Express, находящиеся в одной из папок(рассылки например), в HTML-формате ?
2Вопрос:КАК? ...Вопрос № 54811: Здравствуйте, Уважаемые Эксперты!
Помогите пожалуйста с решением такого вопроса: нужно чтобы определялась частота сигнала с микрофонного входа. (например частота входного сигнала=1000 Гц, и в переменную передаеться это значение: 1000) . Желательн...
Вопрос № 54.798
Уважаемые эксперты!
Помогите, пожалуйста, разобраться с проблемой. Перерыл весь рунет - ничего не помогло. Есть таблица. Во II ячейке содержаться некоторые значения. Необходимо, что бы при запуске макроса, происходило удаление строк, которые не содержат данное значение. При запуске макроса, удаление неподходящих значений происходит, но остается первое неподходящее значение следующее после последнего подходящего. И происходит что-то вроде зацикливания. Помогает только ctrl+break
И еще вопрос: как выбрать конкретный столбец и значения, содержащиеся в нем, поставить после определенного? К примеру, требуется после Z поставить AC а потом только АА. Причем, это необходимо делать через макросы?
Заранее благодарен.
Приложение:
Отправлен: 09.09.2006, 03:58
Вопрос задал: Vadimf (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Genyaa
Здравствуйте, Vadimf!
Я встечался сам с подобной проблемой несколько раз.
Путаница при удалении возникает из-за того, что количество обрабатываемых строк меняется, и сам критерий цикла до i < ActiveWorkbook.Worksheets("Лист1 (2)").UsedRange.Rows.Count становится не совсем определенным. Можно ли уверенно сказать, что является для Excel UsedRange во время выполнения макроса после удаления нескольких строк? И какую строку будет обабатывать цикл после удаления строки и увеличения счетчика на единицу - следующую или следующую после следующей? А если при удалении уменьшить
счетчик, а потом увеличить - какая строка будет обрабатываться?
Даже если после удаления уменьшать счетчик на единицу (как это органнизованно в у Вас в коде), как мне кажется, все равно остается какая-то неопределенность, "неизящность" кода. Честно говоря, я сам успел намучиться отлаживать работу цикла с удалением строк с таким подходом.
Поэтому я лично теперь придерживаюсь следующего подхода, если требуется удаление строк или столбцов на листе по критерию:
- лучше в качестве критерия в описании цикла не использовать UsedRange.Rows.Count, а переменную, которой присвоено значение UsedRange.Rows.Count до начала цикла
- и цикл нужно организовывать не с 1 до UsedRange.Rows.Count, а наоборот с UsedRange.Rows.Count до 1 (с отрицательным шагом -1) - в этом случае удаление строк смещает список только в той области листа, которая уже обработана и волноваться о значении счетчика не нужно. Код становится короче и, главное, легче для понимания и отладки.
А для переноса столбцов (если я правильно понял вопрос) можно сделать так (см. приложение):
Приложение:
--------- Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: 7-ой класс)
Ответ отправлен: 09.09.2006, 09:01
Вопрос № 54.800
Здравствуйте уважаемые эксперты,кто может помочь, заране спасибо.
1Как средствами VB6 можно сохранить все сообщения определенной темы или даты из Outlook Express, находящиеся в одной из папок(рассылки например), в HTML-формате ?
2Вопрос:КАК? как запихать HTML-страницы в EXEшник(хотя бы из папки какой нибудь) и организовать только их просмортр, без использования Internet Explorer(подключение к инету не надо), средствами VB6?
P.S.прошу прощения если кому не ответил,деньги за инет имеют тенденцию быстро кончаться ;),но все советы были очень полезны
Отправлен: 09.09.2006, 05:56
Вопрос задал: Vavunchik (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 3)
Отвечу на второй Ваш вопрос. Без использования Internet Explorer никакой документ в формате HTML (HTM) просмотреть нельзя, а для просмотра HTML-документа на жестком диске Вашего компьютера вовсе незачем лезть в Интернет. И более того, элементарный пример: в настройках обозревателя (панель управления) уберите поддержку показа рисунков - и Ваш рабочий стол не сможет отображать ничего, кроме ярлычков к программам. Как говорилось в одной рекламе - Internet Explorer всегда с Вами! Живым примером компилированных HTML-страниц
является файл справки Windows либо любой другой программы, имеющей свою справочную систему. Отсюда вывод: пользуйтесь либо возможностью VB создавать DHTML-приложение, либо, к примеру, Html Help Workshop от Microsoft и т.п. программами.
--------- Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 6-ой класс)
Ответ отправлен: 09.09.2006, 09:33 Оценка за ответ: 3 Комментарий оценки: Html Help Workshop это из другой оперы вроде :) CHM и HLP файлы. А про возможностью VB создавать DHTML-приложение где можно поподробней узнать, ж-но с примерчиками
Отвечает: Макаренко Е.В.
Здравствуйте, Vavunchik!
1.По первому вопросу лично видится только перекидывание вставок из одного приложения в другое. Т.е. вы подаете outlook команду на экспорт во вполне определенный файл. Потом этот файл можно переконвертировать в любой угодный для Вас формат. Например, используя ту же манипуляцию офисными приложениями, доступную из VB.
2.Запихать HTML в экзешник будет сложновато. Это ведь в самом простом случае - текст + ссылки на картинки/навороченные вставки. Все операции по проецированию этого текста/программного кода в окошки берет на себя интерпритатор браузера. Хотите - можете свой написать. :)
Однако, в простейшем случае, если нужно что-нибудь вроде просмотра таблиц, выход есть. Полагаю, вам пригодится элемент Microsoft Office SpreadSheet. Этот урезанный вариант экселя понимает CSV, HTML, XML форматы.
--------- осторожность, точность... и горит все синим пламенем! :))
Ответ отправил: Макаренко Е.В. (статус: 9-ый класс)
Ответ отправлен: 09.09.2006, 10:32
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Vavunchik!
2. Запхните все HTML-страницы в строковой ресурс (в смысле, текст этих страниц, который видно, когда их открываешь в блокноте), потом по надобности пишите этот код в нужный файл и запускайте его в броузере (без него никак). Скомпилировав приложение, Вы получите экзешник с зашитыми в него HTML-страницами - они будут храниться как ресурс. Без извлечения никак нельзя. Хотя можно попытаться создать объект InternetExplorer.Application и записать в него текст, извлеченный из строкового ресурса - тогда никакого писания
в файл не понадобится. Например, так:
Sub ee()
Dim o As Object
Dim s As String
Set o = CreateObject("InternetExplorer.Application")
'Это обязательно - иначе у Вас не будет объекта Document
o.navigate "about:blank"
s=LoadResString(101) 'Или Ваш номер - смотря как в ресурсах
o.Document.write s
'Делаем ишак видимым
o.Visible = True
'и убиваем объект - пусть живет своей жизнью
Set o = Nothing
End Sub
Хотя без ишака можно и обойтись - есть же контрол WebBrowser, хотя разница не очень большая.
--------- Учиться никогда не поздно. Особенно программированию!
Здравствуйте, Уважаемые Эксперты!
Помогите пожалуйста с решением такого вопроса: нужно чтобы определялась частота сигнала с микрофонного входа. (например частота входного сигнала=1000 Гц, и в переменную передаеться это значение: 1000) . Желательно сделать это преобразование в VBA. Зараннее спасибо.
Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Zdobnin Pavel N.!
VBA, конечно, может многое, но эта задача вряд ли решается с его помощью. Дело в том, что даже VB (обладающий бОльшими возможностями, нежели VBA) имеет большие трудности при работе с аппаратными устройствами ПК. В VB имеются, конечно, примеры считывания значений, скажем, с COM-порта, но они используют довольно часто дополнительные компоненты, которые надо еще найти (причем, как правило, платные). Всякий язык программирования имеет области применения, где его использование предпочтительней, и здесь наилучшим
выходом будет использование Assembler или C++ по моему мнению.
--------- Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 6-ой класс)
Ответ отправлен: 09.09.2006, 19:32