<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: добавить SparkLine на лист Excel]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=17610&amp;type=atom" />
	<updated>2023-02-20T05:41:16Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=17610</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156856#p156856" />
			<content type="html"><![CDATA[<p><strong>Constantin77</strong>, на здоровье!</p>]]></content>
			<author>
				<name><![CDATA[andypetr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40320</uri>
			</author>
			<updated>2023-02-20T05:41:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156856#p156856</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156855#p156855" />
			<content type="html"><![CDATA[<p><strong>andypetr</strong>, спасибо большое!</p>]]></content>
			<author>
				<name><![CDATA[Constantin77]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=43013</uri>
			</author>
			<updated>2023-02-20T05:27:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156855#p156855</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156850#p156850" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[andypetr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40320</uri>
			</author>
			<updated>2023-02-18T10:40:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156850#p156850</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156849#p156849" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Constantin77]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=43013</uri>
			</author>
			<updated>2023-02-17T14:00:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156849#p156849</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156848#p156848" />
			<content type="html"><![CDATA[<p>1. Да, константы Excel &quot;по-умолчанию&quot; недоступны в vbs.<br />2. В vbs все переменные имеют тип variant. Нельзя, как в vba, указать тип переменной при объявлении. Соответственно, не может быть никакого &quot;as SparklineGroups&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Vladimir]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27154</uri>
			</author>
			<updated>2023-02-17T13:01:03Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156848#p156848</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156847#p156847" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Constantin77]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=43013</uri>
			</author>
			<updated>2023-02-17T08:01:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156847#p156847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156846#p156846" />
			<content type="html"><![CDATA[<p>Что (как) именно &quot;не работает&quot;? <br />У вас&nbsp; константа xlSparkLine в vbs-скрипте определена?</p>]]></content>
			<author>
				<name><![CDATA[Vladimir]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27154</uri>
			</author>
			<updated>2023-02-17T06:22:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156846#p156846</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: добавить SparkLine на лист Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=156832#p156832" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Constantin77]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=43013</uri>
			</author>
			<updated>2023-02-16T13:30:39Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=156832#p156832</id>
		</entry>
</feed>
