<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Переименование листа в новой книге]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9573</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9573&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Переименование листа в новой книге».]]></description>
		<lastBuildDate>Thu, 08 May 2014 13:57:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82790#p82790</link>
			<description><![CDATA[<p><span style="color: green"><strong>vinkonik</strong>, оформите код правильно.</span></p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 08 May 2014 13:57:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82790#p82790</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82776#p82776</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (vinkonik)]]></author>
			<pubDate>Thu, 08 May 2014 08:19:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82776#p82776</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82761#p82761</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (omegastripes)]]></author>
			<pubDate>Wed, 07 May 2014 17:05:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82761#p82761</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Переименование листа в новой книге]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82752#p82752</link>
			<description><![CDATA[<p>Что-то у меня входит в привычку самостоятельно решать возникшие проблемы.</p><p>Опять снимаю вопрос, т.к. нашел решение. Возможно, не совсем впрямую и слишком мудрено, но нужный результат получил.</p><p>Всем кто читал, спасибо, что хотя бы заинтересовались.</p>]]></description>
			<author><![CDATA[null@example.com (vinkonik)]]></author>
			<pubDate>Wed, 07 May 2014 13:34:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82752#p82752</guid>
		</item>
		<item>
			<title><![CDATA[VBA: Переименование листа в новой книге]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82700#p82700</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (vinkonik)]]></author>
			<pubDate>Tue, 06 May 2014 13:42:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82700#p82700</guid>
		</item>
	</channel>
</rss>
