<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: добавить SparkLine на лист Excel]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=17610</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17610&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: добавить SparkLine на лист Excel».]]></description>
		<lastBuildDate>Mon, 20 Feb 2023 05:41:16 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156856#p156856</link>
			<description><![CDATA[<p><strong>Constantin77</strong>, на здоровье!</p>]]></description>
			<author><![CDATA[null@example.com (andypetr)]]></author>
			<pubDate>Mon, 20 Feb 2023 05:41:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156856#p156856</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156855#p156855</link>
			<description><![CDATA[<p><strong>andypetr</strong>, спасибо большое!</p>]]></description>
			<author><![CDATA[null@example.com (Constantin77)]]></author>
			<pubDate>Mon, 20 Feb 2023 05:27:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156855#p156855</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156850#p156850</link>
			<description><![CDATA[<p><strong>Constantin77</strong>, приветствую.</p><p>В общем, на основе кода из первого поста:<br /></p><div class="codebox"><pre><code>spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(1,2),spXL.Worksheets(1).Cells(1,4)).SparklineGroups.Add Type:=xlSparkLine,SourceData:=spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(6,2), spXL.Worksheets(1).Cells(154,4))</code></pre></div><p>Вот, примерно так у меня получилось.<br />2 варианта: создание новой книги Excel или открытие существующей.</p><div class="codebox"><pre><code>Const xlSparkLine = 1 &#039; VBS не знает о константах VBA

Set spXL = CreateObject(&quot;Excel.Application&quot;) &#039; создаём новый экземпляр Excel...

Set spWorkBook = spXL.Workbooks.Add                            &#039; ...1) в нём создаём новую книгу
&#039;Set spWorkBook = spXL.Workbooks.Open(&quot;D:\Test_SparkLine.xlsx&quot;) &#039; ...2) или в нём открываем нужную книгу, требуется полный путь

Set spWorkSheet = spWorkBook.Worksheets(1)   &#039; ...в книге работаем с Лист1

With spWorkSheet

    &#039; Немного ещё разгрузим код от длинных строк:
	Set rDest   = .Range(.Cells(1,2), .Cells(1,4))
	Set rSource = .Range(.Cells(6,2), .Cells(154,4))

	rSource.FormulaR1C1Local = &quot;=R[-1]C + 1&quot; &#039; заполним хоть какими-то значениями (если книга новая)

	&#039; VBS не знает об именованных параметрах методов VBA:
	rDest.SparklineGroups.Add xlSparkLine, rSource.Address &#039; в VBA: Type:=xlSparkLine, SourceData:=.Range(.Cells(6,2), .Cells(154,4)).Address

End With

&#039; Открытый программой Excel будет невидимым, откроем его пользователю:
spXL.Visible = True

&#039; Либо, если нужно закрыть Excel программой:
&#039;spWorkBook.Save True &#039; закрыть книгу с сохранением
&#039;spXL.Quit &#039; закрыть Excel
&#039; Для полного выхода - не забываем все Set-переменные &quot;уничтожать&quot;, т.к. Excel может остаться в памяти.
&#039;Set spXL        = Nothing
&#039;Set spWorkBook  = Nothing
&#039;Set spWorkSheet = Nothing
&#039;Set rDest   = Nothing
&#039;Set rSource = Nothing
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (andypetr)]]></author>
			<pubDate>Sat, 18 Feb 2023 10:40:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156850#p156850</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156849#p156849</link>
			<description><![CDATA[<p>Попробовал так:</p><div class="codebox"><pre><code>set range1 = spXL.Worksheets(1).range (spXL.Worksheets(1).Cells(1,2),spXL.Worksheets(1).Cells(1,4))
set range2 = spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(6,2), spXL.Worksheets(1).Cells(154,4)) 
range1.SparklineGroups.Add 1, range2</code></pre></div><p>Ошибка: Несоответствие типа: &#039;range1.SparklineGroups.Add&#039;.</p>]]></description>
			<author><![CDATA[null@example.com (Constantin77)]]></author>
			<pubDate>Fri, 17 Feb 2023 14:00:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156849#p156849</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156848#p156848</link>
			<description><![CDATA[<p>1. Да, константы Excel &quot;по-умолчанию&quot; недоступны в vbs.<br />2. В vbs все переменные имеют тип variant. Нельзя, как в vba, указать тип переменной при объявлении. Соответственно, не может быть никакого &quot;as SparklineGroups&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Vladimir)]]></author>
			<pubDate>Fri, 17 Feb 2023 13:01:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156848#p156848</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156847#p156847</link>
			<description><![CDATA[<p>1. Синтаксическая ошибка.<br />2. Это константа Excel и VBS ee &quot;не понимает&quot;?</p><p>Поменял на </p><div class="codebox"><pre><code>Type:=1</code></pre></div><p> Снова &quot;синтаксическая ошибка&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Constantin77)]]></author>
			<pubDate>Fri, 17 Feb 2023 08:01:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156847#p156847</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156846#p156846</link>
			<description><![CDATA[<p>Что (как) именно &quot;не работает&quot;? <br />У вас&nbsp; константа xlSparkLine в vbs-скрипте определена?</p>]]></description>
			<author><![CDATA[null@example.com (Vladimir)]]></author>
			<pubDate>Fri, 17 Feb 2023 06:22:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156846#p156846</guid>
		</item>
		<item>
			<title><![CDATA[VBS: добавить SparkLine на лист Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156832#p156832</link>
			<description><![CDATA[<p>Здравствуйте!<br />Прошу подсказать, как можно добавить скриптом VBS (именно VBS - не VBA) &quot;спарклайны&quot; на лист Excel.</p><p>Попробовал так:</p><div class="codebox"><pre><code>spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(1,2),spXL.Worksheets(1).Cells(1,4)).SparklineGroups.Add Type:=xlSparkLine, SourceData:=spXL.Worksheets(1).Range(spXL.Worksheets(1).Cells(6,2), spXL.Worksheets(1).Cells(154,4))
</code></pre></div><p>Но так, к сожалению, не работает.</p>]]></description>
			<author><![CDATA[null@example.com (Constantin77)]]></author>
			<pubDate>Thu, 16 Feb 2023 13:30:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156832#p156832</guid>
		</item>
	</channel>
</rss>
