Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/выбор из списка в web-форме. - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выбор из списка в web-форме. (Макросы/Sub)
выбор из списка в web-форме.
jurafenix Дата: Понедельник, 21.12.2015, 12:32 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые форумчане!
Прошу вас о помощи в насущном вопросе:) Делаю заполнение web-формы из столбцов в Excel.
Как заполнить текстовые поля я примерно понимаю, а вот как выбрать из списка?
HTML-код раскрывающегося списка представлен ниже. Выбранный элемент, я так понимаю, отмечается словом SELECTED. Нужный статус записан в столбце С листа Лист1.

Заранее очень благодарен!!!


[moder]Покажите пример и код, который у Вас уже есть[/moder]


Сообщение отредактировал Manyasha - Понедельник, 21.12.2015, 13:13
 
Ответить
СообщениеДобрый день, уважаемые форумчане!
Прошу вас о помощи в насущном вопросе:) Делаю заполнение web-формы из столбцов в Excel.
Как заполнить текстовые поля я примерно понимаю, а вот как выбрать из списка?
HTML-код раскрывающегося списка представлен ниже. Выбранный элемент, я так понимаю, отмечается словом SELECTED. Нужный статус записан в столбце С листа Лист1.

Заранее очень благодарен!!!


[moder]Покажите пример и код, который у Вас уже есть[/moder]

Автор - jurafenix
Дата добавления - 21.12.2015 в 12:32
jurafenix Дата: Понедельник, 21.12.2015, 15:39 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
по факту кода еще никакого нет, просто есть понимания того, как это сделать... Пример нужен html файл?
 
Ответить
Сообщениепо факту кода еще никакого нет, просто есть понимания того, как это сделать... Пример нужен html файл?

Автор - jurafenix
Дата добавления - 21.12.2015 в 15:39
jurafenix Дата: Вторник, 22.12.2015, 10:25 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
вот код с сайта)

 
Ответить
Сообщениевот код с сайта)


Автор - jurafenix
Дата добавления - 22.12.2015 в 10:25
Manyasha Дата: Вторник, 22.12.2015, 11:22 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Как заполнить текстовые поля я примерно понимаю,

Покажите пример и код

я думала Вы код макроса покажете...
попробуйте так:
[vba]
Код
Sub rrr()
    Dim objIe As Object: Set objIe = CreateObject("InternetExplorer.Application")
    Dim elems As IHTMLElementCollection
    Dim elem As IHTMLElement
    Dim doc As HTMLDocument
    objIe.Visible = 1
    'Поставить нужный url
    objIe.navigate "http://www...ttt.htm"
    Do
        DoEvents
    Loop Until objIe.readyState = 4
    Set doc = objIe.document
    Set elems = doc.getElementsByTagName("select")
    For Each elem In elems
        If elem.Name = "contr_status" Then elem.Value = 62 'Поставить нужное значение
    Next elem
    Set elems = Nothing
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
Как заполнить текстовые поля я примерно понимаю,

Покажите пример и код

я думала Вы код макроса покажете...
попробуйте так:
[vba]
Код
Sub rrr()
    Dim objIe As Object: Set objIe = CreateObject("InternetExplorer.Application")
    Dim elems As IHTMLElementCollection
    Dim elem As IHTMLElement
    Dim doc As HTMLDocument
    objIe.Visible = 1
    'Поставить нужный url
    objIe.navigate "http://www...ttt.htm"
    Do
        DoEvents
    Loop Until objIe.readyState = 4
    Set doc = objIe.document
    Set elems = doc.getElementsByTagName("select")
    For Each elem In elems
        If elem.Name = "contr_status" Then elem.Value = 62 'Поставить нужное значение
    Next elem
    Set elems = Nothing
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 22.12.2015 в 11:22
doober Дата: Вторник, 22.12.2015, 11:32 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
а вот как выбрать из списка?

Так можно[vba]
Код
selectedIndex = 3
Set contr_status = WebBrowser1.Document.all("contr_status")
contr_status.selectedIndex = selectedIndex
[/vba]


 
Ответить
Сообщение
а вот как выбрать из списка?

Так можно[vba]
Код
selectedIndex = 3
Set contr_status = WebBrowser1.Document.all("contr_status")
contr_status.selectedIndex = selectedIndex
[/vba]

Автор - doober
Дата добавления - 22.12.2015 в 11:32
jurafenix Дата: Вторник, 22.12.2015, 11:52 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
попробуйте так:

а нельзя задать текстовый параметр, а не цифровой?..)
 
Ответить
Сообщение
попробуйте так:

а нельзя задать текстовый параметр, а не цифровой?..)

Автор - jurafenix
Дата добавления - 22.12.2015 в 11:52
Manyasha Дата: Вторник, 22.12.2015, 12:40 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
[vba]
Код
Sub rrr()
    Dim objIe As Object: Set objIe = CreateObject("InternetExplorer.Application")
    Dim elems As IHTMLElementCollection
    Dim elem As IHTMLElement
    Dim doc As HTMLDocument
    objIe.Visible = 1
    'Поставить нужный url
    objIe.navigate "http://www...ttt.htm"
    Do
        DoEvents
    Loop Until objIe.readyState = 4
    
    Dim currVal$: currVal = "Card OK"
    Set doc = objIe.document
    Set elems = doc.getElementsByTagName("select")
    For Each elem In elems
        If elem.Name = "contr_status" Then
            For i = 0 To elem.Children.Length - 1
                If elem.Children(i).innerHTML = currVal Then elem.Value = elem.Children(i).Value
            Next i
        End If
    Next elem
    Set elems = Nothing
End Sub
[/vba]
хотя мне так меньше нравится...Если Вы все равно из экселя заполняете, то почему, например ВПРом не вытянуть нужное value?


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение[vba]
Код
Sub rrr()
    Dim objIe As Object: Set objIe = CreateObject("InternetExplorer.Application")
    Dim elems As IHTMLElementCollection
    Dim elem As IHTMLElement
    Dim doc As HTMLDocument
    objIe.Visible = 1
    'Поставить нужный url
    objIe.navigate "http://www...ttt.htm"
    Do
        DoEvents
    Loop Until objIe.readyState = 4
    
    Dim currVal$: currVal = "Card OK"
    Set doc = objIe.document
    Set elems = doc.getElementsByTagName("select")
    For Each elem In elems
        If elem.Name = "contr_status" Then
            For i = 0 To elem.Children.Length - 1
                If elem.Children(i).innerHTML = currVal Then elem.Value = elem.Children(i).Value
            Next i
        End If
    Next elem
    Set elems = Nothing
End Sub
[/vba]
хотя мне так меньше нравится...Если Вы все равно из экселя заполняете, то почему, например ВПРом не вытянуть нужное value?

Автор - Manyasha
Дата добавления - 22.12.2015 в 12:40
jurafenix Дата: Вторник, 22.12.2015, 15:05 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Если Вы все равно из экселя заполняете, то почему, например ВПРом не вытянуть нужное value?

Да, согласен... Огромное Вам спасибо!
 
Ответить
Сообщение
Если Вы все равно из экселя заполняете, то почему, например ВПРом не вытянуть нужное value?

Да, согласен... Огромное Вам спасибо!

Автор - jurafenix
Дата добавления - 22.12.2015 в 15:05
marryska_7 Дата: Пятница, 25.12.2015, 07:37 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
попробуйте так


код не работает :( на строчке
[vba]
Код
Loop Until objIe.readyState = 4
[/vba]
выдает ошибку (Run-time error '-2147417848 (80010108)': Automation error The object invoked disconnected from its clients."

при этом появляется окно internet explorer, ссылка открыта, но в нем ничего не изменено(((


Сообщение отредактировал marryska_7 - Пятница, 25.12.2015, 07:40
 
Ответить
Сообщение
попробуйте так


код не работает :( на строчке
[vba]
Код
Loop Until objIe.readyState = 4
[/vba]
выдает ошибку (Run-time error '-2147417848 (80010108)': Automation error The object invoked disconnected from its clients."

при этом появляется окно internet explorer, ссылка открыта, но в нем ничего не изменено(((

Автор - marryska_7
Дата добавления - 25.12.2015 в 07:37
Manyasha Дата: Пятница, 25.12.2015, 10:23 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
marryska_7, у меня работают оба макроса...
Покажите Ваш файл


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеmarryska_7, у меня работают оба макроса...
Покажите Ваш файл

Автор - Manyasha
Дата добавления - 25.12.2015 в 10:23
marryska_7 Дата: Пятница, 25.12.2015, 12:17 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Покажите Ваш файл


не могу выложить, только вечером :(
Я немного изменила код. Ссылка расположена на листе АКТ в 28 столбце. Там будет работать цикл, проходящийся по всему столбцу, но пока делаю просто ссылку. А в 26 столбце стоит цифровой номер нужного статуса... Адрес берет правильный, но в указанном месте ошибка постоянно выходит :( :( может библиотеки какой нет или дело в браузере?..

[vba]
Код
Sub rrr()
Dim objIe As Object: Set objIe = CreateObject("InternetExplorer.Application")
Dim elems As IHTMLElementCollection
Dim elem As IHTMLElement
Dim doc As HTMLDocument
objIe.Visible = 1
'вставить нужный url
i = Sheets("АКТ").Cells(2, 28)
objIe.navigate i
Do
DoEvents
Loop Until objIe.readyState = 4
Set doc = objIe.document
Set elems = doc.getElementsByTagName("select")
s = Cells(2, 26)
For Each elem In elems
If elem.Name = "contr_status" Then elem.Value = s 'Поставить нужное значение
Next elem
Set elems = Nothing
End Sub
Option Explicitcode
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
[/vba]


Сообщение отредактировал marryska_7 - Пятница, 25.12.2015, 12:20
 
Ответить
Сообщение
Покажите Ваш файл


не могу выложить, только вечером :(
Я немного изменила код. Ссылка расположена на листе АКТ в 28 столбце. Там будет работать цикл, проходящийся по всему столбцу, но пока делаю просто ссылку. А в 26 столбце стоит цифровой номер нужного статуса... Адрес берет правильный, но в указанном месте ошибка постоянно выходит :( :( может библиотеки какой нет или дело в браузере?..

[vba]
Код
Sub rrr()
Dim objIe As Object: Set objIe = CreateObject("InternetExplorer.Application")
Dim elems As IHTMLElementCollection
Dim elem As IHTMLElement
Dim doc As HTMLDocument
objIe.Visible = 1
'вставить нужный url
i = Sheets("АКТ").Cells(2, 28)
objIe.navigate i
Do
DoEvents
Loop Until objIe.readyState = 4
Set doc = objIe.document
Set elems = doc.getElementsByTagName("select")
s = Cells(2, 26)
For Each elem In elems
If elem.Name = "contr_status" Then elem.Value = s 'Поставить нужное значение
Next elem
Set elems = Nothing
End Sub
Option Explicitcode
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
[/vba]

Автор - marryska_7
Дата добавления - 25.12.2015 в 12:17
marryska_7 Дата: Пятница, 25.12.2015, 13:06 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
у меня работают оба макроса...

а можете свой выложить файл?.. попробую у себя запустить на своем Excel.
 
Ответить
Сообщение
у меня работают оба макроса...

а можете свой выложить файл?.. попробую у себя запустить на своем Excel.

Автор - marryska_7
Дата добавления - 25.12.2015 в 13:06
Manyasha Дата: Пятница, 25.12.2015, 13:48 | Сообщение № 13
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
marryska_7, сейчас выложу...
Напишите, что у Вас стоит в Cells(2, 28) и в Cells(2, 26)
[p.s.]Option Explicit и все библиотеки (Declare Sub ...)должны подключаться перед кодом[/p.s.]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеmarryska_7, сейчас выложу...
Напишите, что у Вас стоит в Cells(2, 28) и в Cells(2, 26)
[p.s.]Option Explicit и все библиотеки (Declare Sub ...)должны подключаться перед кодом[/p.s.]

Автор - Manyasha
Дата добавления - 25.12.2015 в 13:48
marryska_7 Дата: Пятница, 25.12.2015, 14:24 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
В Cells(2, 28) стоит ссылка (внутренний портал) https://owa.analytic/cgi-mod....0946581
В Cells(2, 26) стоит 05.

Option Explicit и все

попробую подключить перед кодом)
 
Ответить
СообщениеВ Cells(2, 28) стоит ссылка (внутренний портал) https://owa.analytic/cgi-mod....0946581
В Cells(2, 26) стоит 05.

Option Explicit и все

попробую подключить перед кодом)

Автор - marryska_7
Дата добавления - 25.12.2015 в 14:24
marryska_7 Дата: Пятница, 25.12.2015, 14:27 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Option Explicit и все библиотеки (Declare Sub ...)должны подключаться перед кодом

Подключила, а толку не :(
 
Ответить
Сообщение
Option Explicit и все библиотеки (Declare Sub ...)должны подключаться перед кодом

Подключила, а толку не :(

Автор - marryska_7
Дата добавления - 25.12.2015 в 14:27
Manyasha Дата: Пятница, 25.12.2015, 14:41 | Сообщение № 16
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Выкладываю пример. Страничку ttt.htm на диск С киньте. (код поправила)
Возможно https виноват, но что с ним делать, я пока не знаю...
Если мой пример сработает, а Ваш нет, тогда создайте свою тему, т.к. скорее всего дело не в макросе.
К сообщению приложен файл: primer.rar (18.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеВыкладываю пример. Страничку ttt.htm на диск С киньте. (код поправила)
Возможно https виноват, но что с ним делать, я пока не знаю...
Если мой пример сработает, а Ваш нет, тогда создайте свою тему, т.к. скорее всего дело не в макросе.

Автор - Manyasha
Дата добавления - 25.12.2015 в 14:41
marryska_7 Дата: Пятница, 25.12.2015, 14:47 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если мой пример сработает, а Ваш нет, тогда создайте свою тему,

Ваш пример у меня тоже не работает...
А что за библиотека "kernel32"?
 
Ответить
Сообщение
Если мой пример сработает, а Ваш нет, тогда создайте свою тему,

Ваш пример у меня тоже не работает...
А что за библиотека "kernel32"?

Автор - marryska_7
Дата добавления - 25.12.2015 в 14:47
marryska_7 Дата: Пятница, 25.12.2015, 14:52 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Сразу не заметила, но ошибку в вашем примере пишет немного другую на этой же строчке.

Run-time error '430':
Class does not support Automation or does not support expected interface
 
Ответить
СообщениеСразу не заметила, но ошибку в вашем примере пишет немного другую на этой же строчке.

Run-time error '430':
Class does not support Automation or does not support expected interface

Автор - marryska_7
Дата добавления - 25.12.2015 в 14:52
marryska_7 Дата: Пятница, 25.12.2015, 15:04 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если мой пример сработает

Изменила
[vba]
Код
While objIe.readyState <> 4
        DoEvents
    Wend
[/vba]
на
[vba]
Код
While objIe.readyState <> 4
        DoEvents
    Wend
[/vba]
Эту строчку проскочила, но теперь на строчке
[vba]
Код
Set doc = objIe.document
[/vba]
выходит ошибка Object library feature not supported
 
Ответить
Сообщение
Если мой пример сработает

Изменила
[vba]
Код
While objIe.readyState <> 4
        DoEvents
    Wend
[/vba]
на
[vba]
Код
While objIe.readyState <> 4
        DoEvents
    Wend
[/vba]
Эту строчку проскочила, но теперь на строчке
[vba]
Код
Set doc = objIe.document
[/vba]
выходит ошибка Object library feature not supported

Автор - marryska_7
Дата добавления - 25.12.2015 в 15:04
marryska_7 Дата: Пятница, 25.12.2015, 15:16 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Эту строчку проскочила, но теперь на строчке

а на второй раз не проскочила ничего :( мы с мужем в ступоре...
 
Ответить
Сообщение
Эту строчку проскочила, но теперь на строчке

а на второй раз не проскочила ничего :( мы с мужем в ступоре...

Автор - marryska_7
Дата добавления - 25.12.2015 в 15:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выбор из списка в web-форме. (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!