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

т.е. например открыть сайт sql.ru и копировать весь текст и потом вставить его в Excel
...
Рейтинг: 0 / 0
Excel VBA копирование данных с интеренета
    #38385538
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Excel VBA копирование данных с интеренета
    #38385544
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Все круто только можно чтобы текст вставлялся не в одну ячейку?
...
Рейтинг: 0 / 0
Excel VBA копирование данных с интеренета
    #38385639
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Excel VBA копирование данных с интеренета
    #38385793
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Excel VBA копирование данных с интеренета
    #38385873
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Excel VBA копирование данных с интеренета
    #38385990
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,
Дима, Fireman13 прославился тем, что набирал работы в соотв. разделах на форумах, а потом создавал темы в общих разделах, чтоб форумчане за него эти работы выполняли. После чего был забанен на Планете, у Сержа и т. д. Здешним модерам, форумчанам тоже на заметку.
...
Рейтинг: 0 / 0
Excel VBA копирование данных с интеренета
    #38386006
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

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


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