<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBA: Переименование листа в новой книге]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9573&amp;type=atom" />
	<updated>2014-05-08T13:57:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9573</id>
		<entry>
			<title type="html"><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=82790#p82790" />
			<content type="html"><![CDATA[<p><span style="color: green"><strong>vinkonik</strong>, оформите код правильно.</span></p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-05-08T13:57:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=82790#p82790</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=82776#p82776" />
			<content type="html"><![CDATA[<p>Запросто.<br />Небольшое предварительное пояснение.</p><p>При загрузке исходной книги на основании файла настроек создается список Имен рабочих листов и сохраняется на листе &quot;Настройки&quot;. Рабочие листы исходной книги, так же проверяются на соответствие имен созданному списку и, если нужно, переименовываются.</p><p>В шаблоне отчета нужным листам присвоены CodeName, которые никогда не изменяются<br />Установлено жесткое соответствие CodeName строке списка с именами рабочих листов в исходной книге на листе &quot;Настройки&quot;.</p><p>(Выкладываю только кусок кода в котором реализуется ответ на мой же вопрос (естественно, что и до него и после еще много чего делается...)<br /></p><div class="codebox"><pre><code>
Workbooks.Add (xlWBATWorksheet)                         &#039; Создание новой книги с одним рабочим листом
        &#039; Загрузка шаблона отчета в созданный файл
Sheets.Add Type:=Old_Path &amp; &quot;\Шаблоны\Шаблон Выгрузка из Воронки.xltx&quot;, After:=Sheets(1)
        &#039; Сохранение созданного файла в папке выбранной ранее
ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        &#039; Определение имени созданной книги для дальнейшей работы с ней
newbook = Workbooks.Application.ActiveWorkbook.Name
        &#039; Проверка имен листов в созданной книге и, при необходимости, переименование
For i = 1 To Sheets.Count                          &#039; Цикл по всем листам новой книге
      Select Case Worksheets(i).CodeName
      Case &quot;Форма_1&quot;                                &#039; CodeName листа с Name &quot;Регионы&quot;
            If Worksheets(i).Name &lt;&gt; Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J2&quot;).Value Then
                  Worksheets(i).Name = Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J2&quot;).Value
            End If
      Case &quot;Форма_2&quot;                                &#039; CodeName листа с Name &quot;Госсектор&quot;
             If Worksheets(i).Name &lt;&gt; Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J3&quot;).Value Then
                   Worksheets(i).Name = Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J3&quot;).Value
             End If
      Case &quot;Форма_3&quot;                                &#039; CodeName листа с Name &quot;Финансовый сектор&quot;
              If Worksheets(i).Name &lt;&gt; Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J4&quot;).Value Then
                    Worksheets(i).Name = Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J4&quot;).Value
              End If
      End Select
Next i
</code></pre></div><p>Вот, как то так. <br />Отвечу на вопросы. Прислушаюсь к советам....</p>]]></content>
			<author>
				<name><![CDATA[vinkonik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31742</uri>
			</author>
			<updated>2014-05-08T08:19:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=82776#p82776</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=82761#p82761" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>vinkonik пишет:</cite><blockquote><p>Что-то у меня входит в привычку самостоятельно решать возникшие проблемы.</p></blockquote></div><p>Ну это так-то нормально <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><div class="quotebox"><cite>vinkonik пишет:</cite><blockquote><p>нужный результат получил.</p></blockquote></div><p>Опубликуете?</p>]]></content>
			<author>
				<name><![CDATA[omegastripes]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29228</uri>
			</author>
			<updated>2014-05-07T17:05:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=82761#p82761</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=82752#p82752" />
			<content type="html"><![CDATA[<p>Что-то у меня входит в привычку самостоятельно решать возникшие проблемы.</p><p>Опять снимаю вопрос, т.к. нашел решение. Возможно, не совсем впрямую и слишком мудрено, но нужный результат получил.</p><p>Всем кто читал, спасибо, что хотя бы заинтересовались.</p>]]></content>
			<author>
				<name><![CDATA[vinkonik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31742</uri>
			</author>
			<updated>2014-05-07T13:34:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=82752#p82752</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBA: Переименование листа в новой книге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=82700#p82700" />
			<content type="html"><![CDATA[<p>Коллеги, добрый день!</p><p>Суть вопроса:</p><p>1. Есть книга Excel.<br />2. Формирую отчет:<br />&nbsp; &nbsp; &nbsp; - Создаю новую книгу с одним рабочим листом;<br />&nbsp; &nbsp; &nbsp; - Загружаю в нее шаблон отчета (состоит из 5 листов);<br />&nbsp; &nbsp; &nbsp; - Сохраняю новую книгу;<br />3. Из старой книги выбираю и копирую данные в новую (имя листа в старой книге соответствует имени листа с шаблоном отчета в новой);<br />4. Удаляю лист, созданный при создании новой книги, в названии которого есть &quot;Лист&quot;);<br />5. Сохраняю новую книгу.</p><p>Пока все работает, но...</p><p>Пришлось реализовать возможность переименования рабочих листов в старой книге (при загрузке книги названия листов сравниваются со списком имен и, при необходимости, переименовываются). Список имен хранится на отдельном листе загружаемой книги и при открытии файла обновляется из файла настроек (что-то, тип .ini файла).</p><p>Возникла необходимость сравнить названия листов в новой книге со значением из списка имен и, в случае несовпадения, переименовать.</p><p>Вот тут и возникла проблема: Как обратиться к листу в новой книге по CodeName (которое я знаю), чтоб узнать его Name, сравнить его со значением из конкретной ячейки в старой книги и, при необходимости, переименовать?</p><br /><p>Windows(newbook).Activate<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Лист2.Name &lt;&gt; Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J2&quot;).Value Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Лист2.Name = Workbooks(oldbook).Sheets(&quot;Настройки&quot;).Range(&quot;J2&quot;).Value<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If</p><p>Что не так? Почему, несмотря на то, что новая книга активна, мне выдает Name Лист2 старой книги?</p>]]></content>
			<author>
				<name><![CDATA[vinkonik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31742</uri>
			</author>
			<updated>2014-05-06T13:42:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=82700#p82700</id>
		</entry>
</feed>
