Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 09:45   #1
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию Проверка данных из Веба на соответствие заданному условию без вставки их на лист

Есть несколько тысяч интернет страниц с однотипными таблицами состоящими из 5 столбцов и 2 строк (включая заголовок).
В 5 столбце содержится текст.

Есть макрос, который загружает таблицу по заданному адресу в Ексель в диапазон С1:G2 (5 столбцов, 2 строки).

Sub FindAdress()
On Error Resume Next
Sheets("Поиск").Select
With ActiveSheet.QueryTables.Add(Connect ion:="URL;" & Sheets("Ссылки").Range("F" & i), Destination:=Range("C1"))
.Name = "Faind"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "46"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub

Как сделать так, что бы проверялся текст который содержится в 5 столбце 2 строке таблицы и если текст содержит заданное слово, то вставляется эта строка в ексель (если не содержит, то проверяется следующая таблица по следующей ссылке)
??

Я даже не знаю реально ли такое сделать... Подскажите пожалуйста кто знает
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 22.11.2011, 10:16   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Посмотрите примеры в программах, использующих веб-запросы в Excel:
http://excelvba.ru/category/internet/query
EducatedFool вне форума Ответить с цитированием
Старый 22.11.2011, 13:52   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А не поще ли читать данные только нужной ячейки,а потом принимать решение на загрузку нужной строки.
Вы поганяете свой макрос несколько дней,потом посмотрите,сколько у вас создалось подключений.Десятки тысяч,и каждое захочет еще и обновиться.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 22.11.2011, 20:09   #4
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
А не поще ли читать данные только нужной ячейки,а потом принимать решение на загрузку нужной строки.
Вы поганяете свой макрос несколько дней,потом посмотрите,сколько у вас создалось подключений.Десятки тысяч,и каждое захочет еще и обновиться.
А как читать значение только нужной ячейки если в окне выбора данных для загрузки можно выбрать только блок целиком (целиком таблицу) ?
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 22.11.2011, 21:40   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

а вы хоть одну ссылку дайте
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.11.2011, 08:17   #6
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
а вы хоть одну ссылку дайте
Вот сайт. На нем таблица 2 строки и 5 столбцов:
http://www.cbr.ru/credit/colist.asp?...6&y=6&how=rnum

Или вот сайт
http://www.cbr.ru/credit/101.asp?reg...=0&dt=20111101
На нем таблица: много строк и 13 столбцов
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 23.11.2011, 20:18   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Функция взята с http://excelvba.ru/code/GetHTTPResponse
Код:
Function GetHTTPResponse(ByVal sURL As String)
    Dim RRz  As String
    On Error Resume Next
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", sURL, False
       .send
        sHTMLBody = .responseBody
    End With
    For i = 0 To UBound(sHTMLBody)
       RRz = RRz & ChrW(AscW(Chr(AscB(MidB(sHTMLBody, i + 1, 1)))))
    Next
     Set oXMLHTTP = Nothing
     GetHTTPResponse = Replace(RRz, vbCrLf, "")
End Function
Код:

Private Sub CommandButton1_Click()
Dim n As Integer, m As Integer
Dim R As String
R = GetHTTPResponse("http://www.cbr.ru/credit/colist.asp?find=991&x=26&y=6&how=rnum")
R = Replace(R, vbTab, "")
DD = Split(R, "class=" & Chr(34) & "backcell" & Chr(34), -1)
D = Split(DD(1), "class=" & Chr(34) & "tdw" & Chr(34) & "", -1)

X = Split(Split(D(10), "<")(0), ">")(1)' Значение в ячейке  5 столбец строка по вашей класификации 2
For n = 6 To UBound(D)'Вывод всей строки
X = Split(Split(D(n), "<")(0), ">")(1)
Cells(1, n - 5) = X
Next
R = GetHTTPResponse("http://www.cbr.ru/credit/101.asp?regnum=991&when=0&dt=20111101")
R = Replace(R, "align=" & Chr(34) & "right" & Chr(34), "")
R = Replace(R, vbTab, "")
DD = Split(R, "<tr class=" & Chr(34) & "tdw" & Chr(34), -1)

Dim stroka As Integer
 stroka = 2 ' выводим вторую строку данных
DD(2 + stroka) = Replace(DD(2 + stroka), "</td>", "")
 DD(2 + stroka) = Replace(DD(2 + stroka), ">", "")
D2 = Split(DD(2 + stroka), "<td class=" & Chr(34) & "lvl1" & Chr(34), -1)
For n = 1 To UBound(D2)
Cells(2, n) = D2(n)
Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоение порядкового номера по заданному условию tns-ka Microsoft Office Excel 11 12.07.2021 12:09
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 Людвиг Microsoft Office Excel 5 25.10.2014 11:46
Заполнить массив по заданному условию TheLonelySoul Паскаль, Turbo Pascal, PascalABC.NET 1 16.10.2011 23:36
Проверка столбцов на соответствие ZSV Microsoft Office Excel 22 22.09.2010 18:32
Отбор данных по условию и копирование на новый лист Эдик12 Microsoft Office Excel 4 03.03.2010 23:16