<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Excel, вэб-запрос для столбца ссылок]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5225</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5225&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Excel, вэб-запрос для столбца ссылок».]]></description>
		<lastBuildDate>Tue, 30 Nov 2010 06:30:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: Excel, вэб-запрос для столбца ссылок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=42335#p42335</link>
			<description><![CDATA[<div class="quotebox"><cite>Anna пишет:</cite><blockquote><p>Непонятно, как взять значение ссылки из ячейки и использовать это значение для подстановки в запрос?</p></blockquote></div><div class="codebox"><pre><code>WorkBooks(&quot;…&quot;).WorkSheets(&quot;…&quot;).Cells(…, …).Hyperlinks.Item(1).Address</code></pre></div><p>Понадобится как минимум ещё один столбец, рядом с адресами, для указания порядкового номера таблицы на странице, откуда следует извлекать данные. В приведённом примере — это номер «7»:<br /></p><div class="codebox"><pre><code>    With ActiveSheet.QueryTables.Add(Connection:= _
        &quot;URL;http://www.ra-national.ru/?page=p-49698a2d&quot;, Destination:=Range(&quot;…&quot;))
        .Name = &quot;?page=p-49698a2d&quot;
        .FieldNames = True
        …
        .WebTables = &quot;7&quot;
        …
    End With</code></pre></div><p>У Вас этого нет, но, полагаю, сие понадобится.</p><div class="quotebox"><cite>Anna пишет:</cite><blockquote><p>Куда прописать цикл, чтобы запрос повторялся, пока столбец&nbsp; со ссылками не закончится?</p></blockquote></div><p>Очевидно, вопрос должен был звучать не «куда», а «как»?! Например, так:<br /></p><div class="codebox"><pre><code>    For i = 1 To Workbooks(&quot;…&quot;).Worksheets(&quot;…&quot;).UsedRange.Rows.Count
        Debug.Print Workbooks(&quot;…&quot;).Sheets(&quot;…&quot;).Cells(i, 1).Hyperlinks.Item(1).Address
    Next</code></pre></div><div class="quotebox"><cite>Anna пишет:</cite><blockquote><p>Как сделать так, чтобы результаты копировались каждый раз на свободное место листа, т.е. не поверх импортированных данных?<br />Поскольку ссылок много - около 200-300, а импортируемые данные занимают несколько столбцов для каждой ссылки, как решить вопрос того, что место на листе закончится???</p></blockquote></div><p>То же свойство «Workbooks(&quot;…&quot;).Worksheets(&quot;…&quot;).UsedRange». Куда Вы хотите вставлять новые данные — ниже уже заполненного или правее?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 30 Nov 2010 06:30:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=42335#p42335</guid>
		</item>
		<item>
			<title><![CDATA[VBA: Excel, вэб-запрос для столбца ссылок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=42332#p42332</link>
			<description><![CDATA[<p>ДОбрый день!<br />Решаю задачу написания макроса, цель которого - создать веб-запрос для списка ссылок с интернет-адресами, с которых необходимо выгрузить данные на лист в эксель.<br />По умолчанию, веб-запрос необходимо заполнить, указав ссылки в интернете.<br />Непонятно, как взять значение ссылки из ячейки и использовать это значение для подстановки в запрос?<br />Куда прописать цикл, чтобы запрос повторялся, пока столбец&nbsp; со ссылками не закончится?<br />Как сделать так, чтобы результаты копировались каждый раз на свободное место листа, т.е. не поверх импортированных данных?<br />Поскольку ссылок много - около 200-300, а импортируемые данные занимают несколько столбцов для каждой ссылки, как решить вопрос того, что место на листе закончится???</p><p>Вот код, записанный рекордером<br /></p><div class="codebox"><pre><code> Range(&quot;A78:B78&quot;).Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Range(&quot;F80&quot;).Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        &quot;URL;http://www.ra-national.ru/?page=p-49698a2d&quot;, Destination:=Range(&quot;F80&quot;))
        .Name = &quot;?page=p-49698a2d&quot;
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlAllTables
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .Refresh BackgroundQuery:=False
    End With</code></pre></div><p>Кроме того, поискав в интернете, нашла код, кажется. позволяющий найти первый пустой столбец<br /></p><div class="codebox"><pre><code>r = Range(&quot;A&quot; &amp; Rows.Count).End(xlUp).Row + 1</code></pre></div><p>У меня, к сожалению, не техническое образование, достаточно сложно с нуля начинать:)<br />Буду очень рада любому отзыву на мою проблему!</p>]]></description>
			<author><![CDATA[null@example.com (Anna)]]></author>
			<pubDate>Tue, 30 Nov 2010 04:19:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=42332#p42332</guid>
		</item>
	</channel>
</rss>
