Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel VBA копирование данных с интеренета / 11 сообщений из 11, страница 1 из 1
03.09.2013, 14:37
    #38385484
Fireman13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
Добрый день.
Я с VBA нормально общаюсь по внутренним командам, но возникла проблема с запросами.
Подскажите пожалуйста как копировать только текст с Web-страницы. повторяюсь только в формате текста а не HTML и вставить его в лист книги Excel через макрос???
...
Рейтинг: 0 / 0
03.09.2013, 14:56
    #38385515
Fireman13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
Fireman13,

т.е. например открыть сайт sql.ru и копировать весь текст и потом вставить его в Excel
...
Рейтинг: 0 / 0
03.09.2013, 15:03
    #38385538
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
Fireman13,

Наверное, только через IE:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub GetPageText()
    Dim sAnswer As String, IE As Object

    On Error Resume Next
    Set IE = CreateObject("InternetExplorer.Application") 
    IE.Navigate "http://www.sql.ru" 
    While IE.busy Or (IE.readyState <> 4): DoEvents: Wend
    sAnswer = IE.Document.body.innerText
    Cells(1, 1).Value = sAnswer
    IE.Quit: Set IE = Nothing
End Sub
...
Рейтинг: 0 / 0
03.09.2013, 15:07
    #38385544
Fireman13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
The_Prist,

Все круто только можно чтобы текст вставлялся не в одну ячейку?
...
Рейтинг: 0 / 0
03.09.2013, 16:07
    #38385639
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
Fireman13, можно конечно.

Я же не мешаю Вам разбить на разные. Воспользуйтесь Split
Код: vbnet
1.
avArr = Split(sAnswer,Chr(10))


и заносите поочереди из массива. Разделитель надо на месте определять. Для верность лучше учесть все возможные переносы строк и заменить их одним. что-то типа:
Код: vbnet
1.
sAnswer = Replace(Replace(sAnswer,Replace(Replace(sAnswer,vbCrLf,Chr(10)),vbNewLine,Chr(10)),Chr(10)),vbLf,Chr(10))
...
Рейтинг: 0 / 0
03.09.2013, 17:42
    #38385793
Fireman13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
The_Prist,
Что то не получается проверьте пожалуйста в коде ошибки нет случайно?


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Dim sAnswer As String, IE As Object
    
    On Error Resume Next
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate "http:/www.sql.ru"
    While IE.busy Or (IE.readyState <> 4): DoEvents: Wend
    sAnswer = IE.Document.body.innerText
    avArr = Split(sAnswer, Chr(10))
    sAnswer = Replace(Replace(sAnswer, Replace(Replace(sAnswer, vbCrLf, Chr(10)), vbNewLine, Chr(10)), Chr(10)), vbLf, Chr(10))
    IE.Quit: Set IE = Nothing

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
03.09.2013, 18:50
    #38385873
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
Fireman13 , я предполагал по первому посту, что уж азы-то Вы знаете.
А Вы передрали бездумно подряд все подкинутые мной коды, даже не задумываясь ни над самими кодами, ни на текстом, к ним адресованному. Если ничего в VBA не понимаете - так и пишите, не морочьте голову нормальным знанием "внутренних команд"(кстати, что это?) Где в Вашем коде вообще запись в ячейку? В моем первоначальном коде она была.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub GetPageText()
    Dim sAnswer As String, IE As Object,avArr, li as long

    On Error Resume Next
    Set IE = CreateObject("InternetExplorer.Application") 
    IE.Navigate "http://www.sql.ru" 
    While IE.busy Or (IE.readyState <> 4): DoEvents: Wend
    sAnswer = IE.Document.body.innerText
    
    sAnswer = Replace(Replace(sAnswer, Replace(Replace(sAnswer, vbCrLf, Chr(10)), vbNewLine, Chr(10)), Chr(10)), vbLf, Chr(10))
    avArr = Split(sAnswer, Chr(10))
    for li = 0 to Ubound(avArr)
        Cells(li + 1, 1).Value = avArr(li)
    Next li
    IE.Quit: Set IE = Nothing
End Sub



P.S. В следующий раз сразу пишите: в VBA не понимаю, подкиньте код кто может. Сэкономите и свое и наше время.
...
Рейтинг: 0 / 0
03.09.2013, 22:19
    #38385990
kuklp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
The_Prist,
Дима, Fireman13 прославился тем, что набирал работы в соотв. разделах на форумах, а потом создавал темы в общих разделах, чтоб форумчане за него эти работы выполняли. После чего был забанен на Планете, у Сержа и т. д. Здешним модерам, форумчанам тоже на заметку.
...
Рейтинг: 0 / 0
03.09.2013, 22:53
    #38386006
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
kuklp,

спасибо, не знал. Учту.
...
Рейтинг: 0 / 0
03.09.2013, 23:15
    #38386014
Serge 007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
...
Рейтинг: 0 / 0
04.09.2013, 09:44
    #38386161
Fireman13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA копирование данных с интеренета
kuklp,
Это вы о чем???? Что за Планета, у Сержа?????
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel VBA копирование данных с интеренета / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]