Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Vasiliy83
Статус: Практикант
Рейтинг: 930
∙ повысить рейтинг »
Megaloman
Статус: Бакалавр
Рейтинг: 809
∙ повысить рейтинг »
Botsman
Статус: Профессионал
Рейтинг: 508
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Basic/VBA

Номер выпуска:954
Дата выхода:14.12.2009, 17:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:371 / 100
Вопросов / ответов:5 / 5

Вопрос № 175030: Уважаемые эксперты, подскажите код, как находясь в Вордовском документе при помощи ВБА Ввести на странице пароль, логин, как из HTML кода найти IE этих полей Инпут, затем нажать кнопку Войти, как из HTML кода найти IE этой кнопки. Если был непр...


Вопрос № 175031: Уважаемые эксперты, подскажите код ВБА в документе часть текста выделено, как узнать на какой странице это выделение начинается Спасибо Эндрю ...
Вопрос № 175033: Уважаемые эксперты, подскажите код, как находясь в Вордовском документе при помощи ВБА, сделать следующее Имеется ВЭБ страница, в ней используется переформатирование, все данные в одном большом тэге <pre>, она ВЭБ страница напоминает собо...
Вопрос № 175056: Уважаемые эксперты, подскажите, почему в данной конструкции ошибка, как будет правильный синтакс? ActiveDocument.Fields("Плюс").Result.Font.Color = wdColorBlue 'окрасить поле ... в цвет ... Спасибо Эндрю...
Вопрос № 175058: Уважаемые эксперты, подскажите каков будет код в ВБА, чтобы после открытия Интернет Эксплойера, он сделался не активным И далее ещё дальше по коду после некоторых мероприятий, чтобы ВБА Интернет Эксплойер сделал активным И также подскажте код ...

Вопрос № 175030:

Уважаемые эксперты, подскажите код, как находясь в Вордовском документе при
помощи ВБА
Ввести на странице пароль, логин, как из HTML кода найти IE этих полей Инпут, затем нажать кнопку Войти, как из HTML кода найти IE этой кнопки. Если был неправильно введён пароль или логин Эксплойер выдаст сообщение, как это сообщение выдать при помощи МсгБокса в ВБА
Считать данные с полей, как узнать их IE, как узнать IE флажков и узнать установлен он или нет
Спасибо Эндрю

Отправлен: 08.12.2009, 19:01
Вопрос задал: Ципихович Эндрю, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Ashotn, 6-й класс :
Здравствуйте, Ципихович Эндрю.
У кнопок и полей в HTML существует не IE, а ID. Существует много способов его узнать. Например, использовать программу Macromedia Dreamweaver. Она показывает содержимое HTML-документа. При этом окно разбивается на 2 половины. Наверху видим код HTML, а внизу то, как эта страница будет видна в браузере. Если выделить кнопку или поле внизу, наверху код этой кнопки будет тоже выделен. К примеру,
<input name="Login" type="text" id="Login" tabindex="1" class="UpperClass" />
Как видим, ID равен Login.
<input name="password" type="password" id="password" tabindex="1" class="UpperClass" value="" />
У второго поля ID =password
Это текстовое поле, предположим надо его заполнить данными.
Еще есть кнопка <input type="submit" name="searchButton" value="Войти" id="loginButton " class="ButtonClass" />, на нее требуется нажать.

Еще надо учесть, что и поля кнопки всегда находятся в форме. Нужно узнать ID этой формы. Это можно сделать поиском по коду. Ctrl-F и вводите текст form. Нашли такой текст
<form name="formCarSearch" method="post" action="CarSearchGrid.aspx" id="formCarSearch">

пишем код, предполагается, что страница уже открыта

IE.Document.forms("formCarSearch").all("Login").Value = "Pushkin"
IE.Document.forms("formCarSearch").all("password").Value = "parol"
'IE.Document.forms("formCarSearch").all("searchButton").Click

В результате браузер перейдет на страницу, которая была указана в описании формы. Так же можно узнать, где выдается сообщение на этой странице
Предположим, что это поле Message.
Dim msg As String
msg =IE.Document.forms("0"). all("Message").Value
MsgBox(msg)


-----
Я ни от чего, ни от кого не завишу.

Ответ отправил: Ashotn, 6-й класс
Ответ отправлен: 08.12.2009, 19:31

Оценка ответа: 5

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257499 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175031:

    Уважаемые эксперты, подскажите код ВБА
    в документе часть текста выделено, как узнать на какой странице это выделение начинается
    Спасибо Эндрю

    Отправлен: 08.12.2009, 19:01
    Вопрос задал: Ципихович Эндрю, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Ashotn, 6-й класс :
    Здравствуйте, Ципихович Эндрю.
    Sub selection()

    Dim beginSel As Integer

    With ActiveDocument.ActiveWindow.Panes(1).selection.Range

    beginSel = .Information(wdActiveEndPageNumber) - .ComputeStatistics(wdStatisticPages) + 1
    End With
    Ответ в переменной beginSel. А конец выделения в .Information(wdActiveEndPageNumber)
    -----
    Я ни от чего, ни от кого не завишу.

    Ответ отправил: Ashotn, 6-й класс
    Ответ отправлен: 09.12.2009, 03:42

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257507 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175033:

    Уважаемые эксперты, подскажите код, как находясь в Вордовском документе при
    помощи ВБА, сделать следующее
    Имеется ВЭБ страница, в ней используется переформатирование, все данные в одном большом тэге <pre>, она ВЭБ страница напоминает собой таблицу, но в ней нарисованы линии таблицы с помощью символов "|", как импортировать данные с ВЭБ страницы, в Excel, а затем в переменные ВБА, но только данные с одной строки ВЭБ страницы, когда эта или часть этой строки, например, выделены или указано число, находящееся в крайнем левом столбце интересующей строки. Может, возможно, это сделать как то попроще, чем импортировать с Эксплоера в Эксель, а затем в Ворд
    Спасибо Эндрю

    Отправлен: 08.12.2009, 20:01
    Вопрос задал: Ципихович Эндрю, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Ashotn, 6-й класс :
    Здравствуйте, Ципихович Эндрю.
    Ответ ориентирован на Ваш конкретный файл. Он приведен в приложении. Здесь имеется таблица из 16 столбцов, и трудность в том, что крайний левый столбец не уникален. Мое решение не использует импорт в Excel. Вместо этого через свойство innertext читается все содержимое. Затем с помощью функции Split это содержимое копируется в массив по принципу: каждый элемент массива в исходном тексте отделен разделителем "|". Через дебаггер было видно, что первый левый
    элемент находится в массиве под номером 69, а следующий отделен от него 17 позициями. Не 16, так как между строчками 2 разделителя, и функция Split переносит пустую строку между ними в отдельный элемент. В цикле ищется совпадение
    крайне левого элемента с заданным значением, конкретно "27". Естественно, можно написать любое по желанию. Когда есть совпадение, следующие 16 значений массива копируются в другой массив. Строк с одинаковым таким числом всегда не более 2, но в другом файле может быть по другому, поэтому размерность массива 2 на 16. Предполагается, что документ уже открыт
    Dim IE As Object
    Dim pos As Integer
    Dim SearchChar As String
    Dim doc As String
    Dim rec() As String
    Dim rec1(1 To 2, 1 To 16) As String
    SearchChar = "27"

    doc = IE.Document.body.innertext

    rec = Split(doc, "|")
    pos = UBound(rec)
    i = 69
    k = 1
    While i <= pos
    rec(i) = Trim(rec(i))
    If rec(i) = SearchChar Then
    For j = 1 To 16
    rec1(k, j) = rec(i + j - 1)
    Next j
    k = k + 1
    End If
    i = i + 17
    Wend

    Приложение:

    -----
    Я ни от чего, ни от кого не завишу.

    Ответ отправил: Ashotn, 6-й класс
    Ответ отправлен: 09.12.2009, 03:23

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257506 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175056:

    Уважаемые эксперты, подскажите, почему в данной конструкции ошибка, как будет правильный синтакс?
    ActiveDocument.Fields("Плюс").Result.Font.Color = wdColorBlue 'окрасить поле ... в цвет ...
    Спасибо Эндрю

    Отправлен: 09.12.2009, 04:31
    Вопрос задал: Ципихович Эндрю, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Тимошенко Дмитрий, Студент :
    Здравствуйте, Ципихович Эндрю.

    Fields(Index) - допускает обращение только по индексу поля в документе 1,2,3..., но никак не по имени (Кстати, где вы его задали у поля, я что-то не нашел?). Естественно для вашей записи выдает ошибку "Type mismatch" (Несоответствие типа).
    Попробуйте так:
    ActiveDocument.Fields(1).Result.Font.Color = wdColorBlue 'окрасить поле ... в цвет ...

    С уважением, Дмитрий

    Ответ отправил: Тимошенко Дмитрий, Студент
    Ответ отправлен: 09.12.2009, 06:07

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257510 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175058:

    Уважаемые эксперты, подскажите каков будет код в ВБА, чтобы после открытия Интернет Эксплойера, он сделался не активным
    И далее ещё дальше по коду после некоторых мероприятий, чтобы ВБА Интернет Эксплойер сделал активным
    И также подскажте код проверки:
    если открыта страница http://rfpro.ru/, тогда ...
    Спасибо Эндрю

    Отправлен: 09.12.2009, 06:31
    Вопрос задал: Ципихович Эндрю, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Ashotn, 6-й класс :
    Здравствуйте, Ципихович Эндрю.
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = False сделает Internet Explorer невидимым
    IE.Visible = True сделает Internet Explorer видимым

    Как определить открытую страницу:
    If IE.LocationURL = "http://rfpro.ru/" Then
    MsgBox ("Вы открыли rfpro.ru!")
    End If
    -----
    Я ни от чего, ни от кого не завишу.

    Ответ отправил: Ashotn, 6-й класс
    Ответ отправлен: 09.12.2009, 12:30

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257524 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.12 от 30.11.2009

    В избранное