<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; СДелать текущей папку на сетевом ресурсе]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16175&amp;type=atom" />
	<updated>2021-03-17T15:08:32Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=16175</id>
		<entry>
			<title type="html"><![CDATA[Re: СДелать текущей папку на сетевом ресурсе]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=146776#p146776" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong><br />Спасибо за понимание.<br />ВОт по этим самым граблям я и нагулялся.<br />Если не менять текущую директорию, закашляешься пути клеить к именам файлов.<br />Всем спасибо!! Снято!</p>]]></content>
			<author>
				<name><![CDATA[Dbeer]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27443</uri>
			</author>
			<updated>2021-03-17T15:08:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=146776#p146776</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: СДелать текущей папку на сетевом ресурсе]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=146764#p146764" />
			<content type="html"><![CDATA[<p><strong>alexii</strong>, изначально тоже самое подумал. Давно не связывался с VBA, поэтому решил провести эксперимент. <br />Положил в сетевую папку &quot;<strong>\\server\test\</strong>&quot; 2 файла - <strong>test.xlsm</strong> и <strong>test.txt</strong><br />В <strong>test.xlsm</strong> вставил код<br /></p><div class="codebox"><pre><code>
Sub Main()
    Debug.Print CurDir
End Sub
</code></pre></div><p>Запустил. Думал, что должен вернуться текущий путь <strong>\\server\test\</strong>, а возвращается путь до документов в профиле пользователя - &quot;<strong>%userprofile%\Documents</strong>&quot;<br />Следовательно и функции работы с файлами видят файлы в папке документов, вместо файлов по пути размещения эксельного файла.<br />Поэтому я решил предложить сменить каталог теми способами, что выше.</p><p>Возможно есть решение лучше ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2021-03-15T18:53:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=146764#p146764</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: СДелать текущей папку на сетевом ресурсе]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=146760#p146760" />
			<content type="html"><![CDATA[<p><strong>Dbeer</strong>, это ж не пакетные файлы. Зачем вообще менять текущий каталог?!</p><p>Для всего этого:<br /></p><div class="quotebox"><cite>Dbeer пишет:</cite><blockquote><p>Мне надо работать с сопутствующими файлами, лежащими &quot;рядом&quot; с ActiveWorkbook (в той же папке) - искать их там, переименовывать, лезть в подпапки.</p></blockquote></div><p>смена текущего каталога совершенно не требуется.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2021-03-15T15:53:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=146760#p146760</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: СДелать текущей папку на сетевом ресурсе]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=146756#p146756" />
			<content type="html"><![CDATA[<p><strong>Dbeer</strong>, не уверен, что это оптимальное решение, но попробуйте так:</p><div class="codebox"><pre><code>
Sub Main()
    CreateObject(&quot;WScript.Shell&quot;).CurrentDirectory = ActiveWorkbook.Path
    Dim strFileName$
    strFileName = Dir(CurDir &amp; &quot;\&quot;, vbNormal Or vbHidden Or vbSystem Or vbReadOnly)
    While (strFileName &lt;&gt; &quot;&quot;)
        Debug.Print strFileName
        strFileName = Dir()
    Wend
End Sub
</code></pre></div><p>либо так</p><div class="codebox"><pre><code>
#If VBA7 Then
    Private Declare PtrSafe Function SetCurrentDirectory Lib &quot;kernel32&quot; _
        Alias &quot;SetCurrentDirectoryA&quot; (ByVal lpPathName As String) As Long
#Else
    Private Declare Function SetCurrentDirectory Lib &quot;kernel32&quot; _
        Alias &quot;SetCurrentDirectoryA&quot; (ByVal lpPathName As String) As Long
#End If

Sub Main()
    SetCurrentDirectory ActiveWorkbook.Path
    Dim strFileName$
    strFileName = Dir(CurDir &amp; &quot;\&quot;, vbNormal Or vbHidden Or vbSystem Or vbReadOnly)
    While (strFileName &lt;&gt; &quot;&quot;)
        Debug.Print strFileName
        strFileName = Dir()
    Wend
End Sub
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2021-03-15T08:44:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=146756#p146756</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: СДелать текущей папку на сетевом ресурсе]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=146754#p146754" />
			<content type="html"><![CDATA[<p>Сам нашел решение, но не нравится:<br />На компах юзеров сетевой ресурс цепляю сетевым диском по схеме:<br />net use U: &quot;\\Server03\Папка&quot;<br />Далее все работает, как хотелось.<br />Но можно ли без таких реверансов?</p>]]></content>
			<author>
				<name><![CDATA[Dbeer]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27443</uri>
			</author>
			<updated>2021-03-15T08:02:54Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=146754#p146754</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[СДелать текущей папку на сетевом ресурсе]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=146752#p146752" />
			<content type="html"><![CDATA[<p>Приветствую, коллеги.<br />Вот кусок окна Immediate^</p><div class="codebox"><pre><code>? CurDir()
E:\Мои документы
? ActiveWorkbook.Path
\\SERVER03\E-DOC
ChDir &quot;\\SERVER03\E-DOC&quot;
ChDrive &quot;\\SERVER03\E-DOC&quot;</code></pre></div><p>1. Открываю .xls на сетевом ресурсе.<br />ActiveWorkbook.Path = \\SERVER03\E-DOC</p><p>2. Текущая папка CurDir() =E:\Мои документы</p><p>3. Делаю ChDir &quot;\\SERVER03\E-DOC&quot; - нет результата см. п.2<br />4. ChDrive &quot;\\SERVER03\E-DOC&quot; - ошибка. Он глотает только однобуквенные литералы.</p><p>Мне надо работать с сопутствующими файлами, лежащими &quot;рядом&quot; с ActiveWorkbook (в той же папке) - искать их там, переименовывать, лезть в подпапки.</p><p>Как сфокусировать файловую систему на &quot;ActiveWorkbook.Path&quot; так, чтобы эта папка стала CurDir?<br />Заранее благодарен.</p>]]></content>
			<author>
				<name><![CDATA[Dbeer]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27443</uri>
			</author>
			<updated>2021-03-15T06:36:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=146752#p146752</id>
		</entry>
</feed>
