<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBA: Excel, вэб-запрос для столбца ссылок]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5225&amp;type=atom" />
	<updated>2010-11-30T06:30:22Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5225</id>
		<entry>
			<title type="html"><![CDATA[Re: VBA: Excel, вэб-запрос для столбца ссылок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42335#p42335" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-30T06:30:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42335#p42335</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBA: Excel, вэб-запрос для столбца ссылок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42332#p42332" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Anna]]></name>
			</author>
			<updated>2010-11-30T04:19:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42332#p42332</id>
		</entry>
</feed>
