<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: вызвать Excel и загрузить текстовый файл с разделителями.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7173&amp;type=atom" />
	<updated>2012-05-03T06:05:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7173</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: вызвать Excel и загрузить текстовый файл с разделителями.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59945#p59945" />
			<content type="html"><![CDATA[<p><strong>DedBanzai</strong>, не доглядел последний про «Полный текст оператора в VBA». Пробуйте так:<br /></p><div class="codebox"><pre><code>Option Explicit

Const xlDelimited   = 1
Const xlDoubleQuote = 1

Dim objExcel
Dim objWorkbook


Set objExcel = WScript.CreateObject(&quot;Excel.Application&quot;)

&#039; Для отладки делаем видимым окно
objExcel.Visible = True
objExcel.UserControl = True

&#039;.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, 
&#039;    ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo,
&#039;    TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)

Set objWorkbook = objExcel.Workbooks.Open( _
    &quot;C:\5NT\WordRep\f118-2332.txt&quot;, 1251, 1, _
    False, False, True, False, False, False, Empty, _
    Array( _
        Array(1, 1), Array(2, 2), Array(3, 2), Array(4, 2), _
        Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), _
        Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), _
        Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1) _
    ), _
    Empty, Empty, Empty, Empty, True, True _
    )

&#039;…

WScript.Quit 0</code></pre></div><p>Но гарантии не даю: нужен пример реального текстового файла для отладки.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-05-03T06:05:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59945#p59945</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: вызвать Excel и загрузить текстовый файл с разделителями.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59944#p59944" />
			<content type="html"><![CDATA[<p>Спасибо, alexii. Но нужно открыть текстовый файл с разделителями, поэтому нужны все параметры из VBA команды:<br /></p><div class="codebox"><pre><code>  Workbooks.OpenText Filename:=&quot;C:\5NT\WordRep\f118-2332.txt&quot;, Origin:=1251, _
                                           StartRow:=1, DataType:=xlDelimited...</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DedBanzai]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27949</uri>
			</author>
			<updated>2012-05-03T05:47:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59944#p59944</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: вызвать Excel и загрузить текстовый файл с разделителями.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59916#p59916" />
			<content type="html"><![CDATA[<p>Никаких «As String» и т.п. В VBScript все скалярные переменные имеют тип Variant (подтип — VarType()/TypeName() — другое дело).<br /></p><div class="codebox"><pre><code>Option Explicit

Dim objExcel
Dim objWorkbook

Set objExcel = WScript.CreateObject(&quot;Excel.Application&quot;)

&#039; Для отладки делаем видимым окно
objExcel.Visible = True
objExcel.UserControl = True

Set objWorkbook = objExcel.Workbooks.Open(&quot;C:\Documents and Settings\User\Мои документы\Книга1.xls&quot;)
…</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-05-02T11:40:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59916#p59916</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: вызвать Excel и загрузить текстовый файл с разделителями.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59913#p59913" />
			<content type="html"><![CDATA[<p>Прочитал совет, что в VBS нужно предварительно создать все константы VBA и затем методом .Open (.OpenText в моем случае) открыть файл без использования конструкций типа:<br />&lt;Параметр&gt; := &lt;Значение&gt; . Все здорово, начал конструировать метод .OpenText в VBA, но уже 2-ой параметр дает ошибку:<br /></p><div class="codebox"><pre><code> Dim fln As String
 
 fln = &quot;C:\5NT\WordRep\f118-2332.txt&quot;

 Workbooks.OpenText(fln,1251)</code></pre></div><p>Текст ошибки:<br /></p><div class="codebox"><pre><code>Compile error:
Expected: =</code></pre></div><p>Полный текст оператора в VBA:<br /></p><div class="codebox"><pre><code> Workbooks.OpenText Filename:=&quot;C:\5NT\WordRep\f118-2332.txt&quot;, Origin:=1251, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 2), _
        Array(3, 2), Array(4, 2), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
        Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
        16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1)), TrailingMinusNumbers _
        :=True</code></pre></div><p><strong>Можно эту проблему как-то обойти или перепрыгнуть? Использовать VBA нельзя - у юзеров в офисе макросы запрещены.<br /></strong></p>]]></content>
			<author>
				<name><![CDATA[DedBanzai]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27949</uri>
			</author>
			<updated>2012-05-02T11:05:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59913#p59913</id>
		</entry>
</feed>
