|
|
|
новичок
      
участник
Last Login: 12.08.2007 19:33
Сообщ.: 4,
Visits: 44
|
|
Помогите пожалуйста с написанием макроса, т.к. в VB особенно не разбираюсь.
Макрос должен по нажатию на кнопку брать значения из выделенных яечеек в Excel, добавлять их (по очереди) к заданной в коде URL строке, к примеру www.ttt.by/nnnnnn&34=" ..... " , искать в полученной странице определенную строку (заданную в коде) и запоминать значение определенного параметра из найденной строки. Далее в зависимости от значения (всего их 3-5 к примеру) закрашивать ячейку в определенный цвет. Цвет будет задаваться в зависимости от значения.
Неплохо было бы встроить ещё эту кнопку в панель.
Вот вроде и все.... Если кому не лень напишите плз более ли менее понятный для новичка манюал.
Заранее спасибо!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 21.03.2008 5:12
Сообщ.: 386,
Visits: 4 197
|
|
?
готовый вариант, думаю, никто не предложит.
разложите задачу на составляющие и решайте по этапам.
Мои пять копеек:
Открыть страничку можно сл.образом:
в ячейку А1 внести "drugoi" (без кавычек)
в макрос:
sURL = "Explorer http://" & Cells(1, 1) & ".livejournal.com/"
Shell sURL, vbNormalFocus
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
|
|
|
|
новичок
      
участник
Last Login: 12.08.2007 19:33
Сообщ.: 4,
Visits: 44
|
|
| Всем спасибо! Видимо сам я тут не справлюсь.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 19.08.2008 15:27
Сообщ.: 112,
Visits: 681
|
|
| Вот таким макаром можно сформировать строку с запросом из ячеек. Из объектной модели эксплорера можно вытащить все, либо распарсить HTML, либо по коллекциям элементов лазить. Если поискать в google на 'CreateObject("InternetExplorer.Application")' вылезет море подобных примеров. что дальше требуется я не совсем въехал поскольку непонятно, что за определенная строка в определенной странице итп. Нужно быть поконкретнее и дать адреса или сампл с исходными данными выложить. Sub doCells() Dim urlStr As String urlStr = "www.ttt.by" Dim c As Range For Each c In Selection.Cells urlStr = urlStr & "nn = " & c.Value Next c Dim objie As Object Set objie = CreateObject("InternetExplorer.Application") With objie .Visible = True .Navigate urlStr Do While .Busy: DoEvents: Loop Do While .ReadyState <> 4: Loop End With End Sub
|
|
|
|
|
новичок
      
участник
Last Login: 12.08.2007 19:33
Сообщ.: 4,
Visits: 44
|
|
rank1 (17.07.2007)
Вот таким макаром можно сформировать строку с запросом из ячеек.
Из объектной модели эксплорера можно вытащить все, либо распарсить HTML, либо по коллекциям элементов лазить.
Если поискать в google на 'CreateObject("InternetExplorer.Application")'
вылезет море подобных примеров. что дальше требуется я не совсем въехал поскольку непонятно, что за определенная строка в определенной странице итп.
Нужно быть поконкретнее и дать адреса или сампл с исходными данными выложить.
Sub doCells()
Dim urlStr As String
urlStr = " www.ttt.by"
Dim c As Range
For Each c In Selection.Cells
urlStr = urlStr & "nn = " & c.Value
Next c
Dim objie As Object
Set objie = CreateObject("InternetExplorer.Application")
With objie
.Visible = True
.Navigate urlStr
Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: Loop
End With
End Sub
Таким методом макрос вызовет IE и откроет URL в нём. А мне нужно, чтобы процесс произходил в "backgroung".
Про строку, конкретно не могу сказать т.к. она будет меняться. В ообщем проблема у меня в том, как в URL странице найти мне нужные данные и запомнить их, записать в файл, хоть как.
Данные будут выглядеть, к примеру, так:
----------------------------------------------
var id_note="";
var idLabel="";
var id="";
idLabel = "Status:";
id = "Information Received";
-----------------------------------------------
Вот мне и надо, что бы в зависимости от значения "ID" ячейка закрашивалась в заданный цвет.
Information Received -> Желтый
Transferred -> Зеленый
Missed -> Красный
|
|
|
|
|
Supreme Being
      
участник
Last Login: 19.08.2008 15:27
Сообщ.: 112,
Visits: 681
|
|
| http://vbaexpress.com/kb/getarticle.php?kb_id=799 Вот примерчик получающий файл через XMLHTTP. А в чем проблема-то с бэкграундом? Установить свойство visible у Эксплорера и тогда он не будет видимым. А поиск выполнить распарсив HTMl с помощью Microsoft regular Expression component. У Эксплорера есть свойство document (а у него InnerHTML) по объектной модели документа лазить перебирая коллекции тегов. Если у тега имя есть - можно его найти методом GetElementByID. Можно на форму плюхнуть Explorer component и через него делать. Можно скачать веб страницу и искать в ней используя регулярные выражения. Если в одной странице много всяких значений, то приджется искать их и засовывать в хеш scripting.dictionary, а потом как-то выполнять сопоставление и в нужный цвет ячейки красить. Вот пример поиска c помощью RegExp: Sub useRegExp() Dim s s = "var id_note="""";" & vbCrLf & _ "var idLabel="""";" & vbCrLf & _ "var id="""";" & vbCrLf & _ "" & vbCrLf & _ "idLabel = ""Status:"";" & vbCrLf & _ "id = ""Information Received"";" MsgBox s Dim re As New RegExp re.MultiLine = True re.IgnoreCase = True re.Pattern = "id.*=.*\x22(Information Received)\x22\;" Dim mm As MatchCollection Dim mt As Match Set mm = re.Execute(s) If mm.Count > 0 Then Set mt = mm(0) MsgBox mt.SubMatches(0) End If End Sub
|
|
|
|
|
новичок
      
участник
Last Login: 31.07.2007 9:43
Сообщ.: 1,
Visits: 8
|
|
| Попробуйте Данные -> Импорт внешних данных -> Создать веб запрос. Далее вводите адрес, выбираете нужную таблицу. и ОК. Поковыряйтесь в настройках и можете авто настройки установки.
|
|
|
|
| | |