Автоматическое переименование листов в excel

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

#1

07.09.2015 11:55:30

У меня есть макрос:

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Range("А1") Then
        If Target.Value <> "" Then
            If Len(Target.Value) < 30 Then
                Target.Parent.Name = Target.Value
            End If
        End If
    End If
End Sub

То есть когда изменяется ячейка А1, название соответствующего листа меняется автоматически. Но у меня в А1 не просто текст или числа. Применяется формула. И пока я не нажму снова на эту ячейке в формулу не нажму ентер, название листа не меняется. Макросу нужно вручную показывать что расчет произошел и теперь его значение другое. Пробовала сама получилось примерно вот это:

Код
Sub Ìàêðîñ1()

    Range("А1").Select
    ActiveCell.FormulaR1C1 = "=TEXT(RC[-10],""ää.ÌÌ.ãããã"")&R[1]C[-1]"
    Range("А2").Select
End Sub

Но совместить их правильно я не смогла. Чего-то не работает да и как совмещать правильно не знаю.
Во вложении есть файл с примером.
Z в макросах не бум бум. Надеюсь на Вашу помощь! Заранее спасибо!

P.S. В примере макрос находится: Исходный текст  —  контекстное меню листа

Прикрепленные файлы

  • Лист Microsoft Excel (2).xlsm (12.94 КБ)

Изменено: Honey07.09.2015 13:36:09

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#2

07.09.2015 12:10:28

на второй ссылке в поиске в модуль листа

Код
Private Sub Worksheet_Calculate()
    Me.Name = Me.Cells(1, 1)
End Sub

Лень двигатель прогресса, доказано!!!

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

Сергей, спасибо большое! Я была бы благодарна, если бы к тому же и объяснили еще подробней что и куда)))
Простите, я совсем чайник…

Изменено: Honey07.09.2015 12:37:11

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

вот

Лень двигатель прогресса, доказано!!!

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

Сергей,УАУ!!! То есть Вы тот макрос вообще убрали? Это так круто! Спасибо большое прибольшое!!! А можете объяснить почему так? Что означает именно этот макрос?

И еще вопрос… Если мои исходные данные находятся не в вышеуказанных ячейках а в С1 и Н3? Как тогда мне быть? Можно ли переформировывать макрос?

Изменено: Honey07.09.2015 12:44:20

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#6

07.09.2015 12:44:26

Цитата
Honey написал: А можете объяснить

неа, патамушто я тоже чайник макрос нашел поиском а лезть в справку мне лень

Лень двигатель прогресса, доказано!!!

 

Михаил Лебедев

Пользователь

Сообщений: 2855
Регистрация: 17.01.2013

#7

07.09.2015 12:47:10

Что Вы хотите, чтобы получилось?
В верхнем макросе — код, который срабатывает только на событие «Изменение (…_Change) значения в ячейке».
Это событие происходит, если Вы нажали на яч. например F2? а затем — ентер..
В самом коде написано, что отслеживаются 3 условия первое из которых — это изменение значения в яч. А1 (If Target = Range(«А1») Then).

Ваш код — это просто запись макрорекордером процесса редактирования ячейки А1, в которой записана формула.

Если Вы хотите, чтобы изменение названия листа происходило только для первого листа — внесите в модуль этого листа код, предложенный Сергеем.
Если для любого активного листа — тогда в модуль книги внесите код, похожий на код Сергея:

Код
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    With Me.ActiveSheet
    .Name = .Cells(1, 1)
    End With
End Sub

или в модуль каждого листа код Сергея.

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Но в А1 должна быть формула

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#9

07.09.2015 12:51:36

Цитата
Honey написал: Если мои исходные данные находятся не в вышеуказанных ячейках а в С1 и Н3?

А это куда применить? Из какой ячейки должно браться наименование листа?

Согласие есть продукт при полном непротивлении сторон.

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

Каждый день будут создаваться новые листы в книге. И соответственно каждый день меняется дата и фамилия в ячейках. Поэтому я хочу чтобы в зависимости кто и когда применял файл изменялось название соответствующего листа, просто чтобы было легче прослеживать и далее применять данную информацию для др формул. При этом возможно в будущем названия листов будут исходить из других ячеек на этом листе. Как мне это можно контролировать? В макросе, который я использовала до этого есть пометка из какой именно ячейки берутся данные. Можно что-то вроде этого?

 

Михаил Лебедев

Пользователь

Сообщений: 2855
Регистрация: 17.01.2013

#11

07.09.2015 12:53:15

Цитата
Honey написал: Вы тот макрос вообще убрали?

Тот макрос отслеживал 3 условия, макрос Сергея — только одно.
Условия, что А1 не пустая If Target.Value <> «» Then) и что его длина не больше 30 символов (If Len(Target.Value) < 30 Then) — он не отслеживал.

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

#12

07.09.2015 12:53:16

Цитата
Михаил Лебедев написал: Но в А1 должна быть формула

А если она будет меняться? Например не в А1 а в М6?

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

.Cells(6, 13)

Изменено: Сергей07.09.2015 12:56:00

Лень двигатель прогресса, доказано!!!

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Может лучше вести

ЛОГ

работы с файлом?

Согласие есть продукт при полном непротивлении сторон.

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

Sanja, это нужно мне также для того, чтобы путь к данным в листе я могла применять в формуле ДВССЫЛ… Мне так удобнее будет…
Но статью обязательно прочитаю. Уже взяла себе на заметку. Спасибо!!!)))

 

Михаил Лебедев

Пользователь

Сообщений: 2855
Регистрация: 17.01.2013

#16

07.09.2015 13:32:39

Цитата
Honey написал:
При этом возможно в будущем названия листов будут исходить из других ячеек на этом листе

Возможно Вам поможет вот такой вариант.
Дать собственное имя той ячейке, из которой макросом будет браться имя для листа.
Тогда эту ячейку можно перетаскивать (или «вырезать-вставить») в любое место листа.

Код
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    With Me.ActiveSheet
    .Name = .Range("ИмяЛиста")
    End With
End Sub

А вообще — Ваш подход, на мой взгляд, не очень удачный…

Цитата
Honey написал:
Каждый день будут создаваться новые листы в книге. И соответственно каждый день меняется дата и фамилия в ячейках. Поэтому я хочу чтобы в зависимости кто и когда применял файл изменялось название соответствующего листа, просто чтобы было легче прослеживать и далее применять данную информацию для др формул

Вы сколько листов планируете создать в одной книге? [рабочих дней в году] * [кол-во менеджеров]? У Вас достаточно мощный компьютер?

Прикрепленные файлы

  • Лист Microsoft Excel (2).xlsm (15.35 КБ)

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Honey

Пользователь

Сообщений: 204
Регистрация: 06.02.2015

#17

08.09.2015 05:36:11

Михаил Лебедев,спасибо большое! Ваш последний вариант — то, что нужно! Насчет остального: компьютер достаточно мощный, до этого они просто вручную переименовывали листы — у каждого свой формат, поэтому удобнее если все будет автоматически выводиться в одном. Книга создается на месяц, каждый день по 10 максимум новых листов на одного менеджера. Как обычно, макрос не позволяет создавать копии листа (н-р 01.02.10Соколов, а копия 01.02.10Соколов (2) — выдает ошибку), но это небольшая проблема))) Ведь при этом он все-равно продолжает отлично работать!
Еще раз огромное спасибо всем!!!

Здравствуйте! Мне нужно чтобы лист сам автоматически переименовывался в название из ячейки. Например на листе1 есть ячейка A1. Там, в ячейке забито слово Колобок. Нужно чтобы лист1 сам переименовывался в название Колобок.


Через кнопку наверное так:
Sub Кнопка1_Щелкнуть()
    NewIm = Range(«A1»)
    Sheets(«Лист1»).Name = NewIm
End Sub

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Wasilic спасибо, но как же автоматом сделать? ???


Цитата: ActionFace от 05.01.2010, 17:32
Wasilic спасибо, но как же автоматом сделать? ???

Что значит «АВТОМАТОМ»? Если не по нажатию кнопки, то при каких условиях? При включении комьютера или открытия книги? Или ….???
Может я и не смогу ответить.

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Wasilic , впринципе и так хорошо! Спасибо! Но можно еще вопрос? У меня есть и второй лист который должен переименовываться :) Можно написать код для двух листов в пределах одного макроса? У листа2 есть свой A1 и там название предположим пчелка.


Sub Кнопка1_Щелкнуть()
    NewIm = Range(«A1»)
    Sheets(«Лист1»).Name = NewIm
    NewIm = Sheets(«Лист2»).Range(«A1»)
    Sheets(«Лист2»).Name = NewIm
End Sub

Не  понимаю смысла этой автоматизации. 
Если это одноразовая процедура, то почему не ручками — нажав правую кнопку на имени листа.
Но, если и новое имя листа будет переименовываться, то этот макрос не подойдет.

В общем то, это в тему о макросах VBA.
Внизу под сообщением есть выбор тем:
Выбери «Проекты VBA»
А много  разных ответов поищи здесь.
http://msoffice.nm.ru/faq/macros.htm

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Если автоматически, то может быть так?
Меняйте ячейки А1 в разных  листах

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995


_Boroda_ Круто! :D Спасибо! Но как вы это сделали? Я не вижу ни формулы, ни макроса в присланном файле. Можете написать пошаговую инструкцию? :'(


Нужно два раза кликнуть мышой по «Эта книга» в VBA. Там макрос и сидит.

Сам макрос:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" Then
On Error Resume Next
Sh.Name = Sh.Range("a1")
If Not Err.Number = 0 Then MsgBox "Лист " & Sh.Name & " нельзя переименовать в " _
& Sh.Range("a1") & "," & Chr(10) & "лист " & Sh.Range("a1") & " уже есть в этой книге."
On Error GoTo 0
End If
End Sub

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995


_Boroda_ Спасибо Большое все заработало! Не сочтите за наглость, а можно вас еще кое о чем спросить? Проблема такая. Мне нужно с экспортить с листа1 данные в текстовом файле с разделителем табуляции(.txt) Но вот незадача. В моих данных имеются точка с запятой ; . И при создании txt в экспортируемом тексте у меня появляются кавычки » ! Кавычки мне не нужны! Как можно от них избавиться? Я конечно могу не экспортировать, а просто скопировать и вставить, но проблема в том что у меня данные в разных ячейках и при копировании txt понимает что это разные ячейки и ставит между ними невидимую палку |. Как от нее можно избавиться?


Мне это нужно для одной управляющей програмки, которая кушает только txt.
1.Вообщем я на листе1 в ячейке A1 пишу допустим Kolobok.
2.Потом там же в A1 дописываю точку с запятой(;). 
3.Далее в ячейке B1 пишу цифру 1.
4.Затем в ячейке C1 пишу точку с запятой(;). 
5.Потом делаю экспорт в формате txt с раздел табуляции.
6.В файле txt должно получиться: Kolobok;1;
Но этот Excel делает между словом Kolobok и знаком ; невидимый промежуток в виде знака | и самое страшное, между знаком ; excel пишет кавычки!
То есть TXT файл получается: «Kolobok;»   1   «;»
Приложил пример.


Если я правильно понял, необходимо сохранить значения из ячеек разделив их знаком точка с запятой «;». Попробуйте сохранить в формате *.csv. У меня на 2003 как раз такой результат получается. Формат .csv можно просто переименовать в .txt или же напрямую открыть текстовым редактором.


Еще один вариант автонаименования листа по ячейке. Используются свойства листа:

1. В случае изменения ячейки вручную на активном листе
Private Sub Worksheet_Change(ByVal Target As Range)
    Me.Name = Me.Cells(1, 1)
End Sub

2. В случае измениния ячейки в неактивном листе посредством формулы-ссылки (в приложении третий лист)
Private Sub Worksheet_Calculate()
    Me.Name = Me.Cells(1, 1)
End Sub


Цитата: ActionFace от 13.01.2010, 23:46
Мне это нужно для одной управляющей програмки, которая кушает только txt.
1.Вообщем я на листе1 в ячейке A1 пишу допустим Kolobok.
2.Потом там же в A1 дописываю точку с запятой(;).  
3.Далее в ячейке B1 пишу цифру 1.
4.Затем в ячейке C1 пишу точку с запятой(;).  
5.Потом делаю экспорт в формате txt с раздел табуляции.

Извратиться, как написал boroda, наверное можно через дополнительный лист  формулой  «=Лист1!A1 & Лист1!B1 & Лист1!C1»  

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Цитата: ActionFace от 13.01.2010, 23:46
Мне это нужно для одной управляющей програмки, которая кушает только txt.
1.Вообщем я на листе1 в ячейке A1 пишу допустим Kolobok.
2.Потом там же в A1 дописываю точку с запятой(;). 
3.Далее в ячейке B1 пишу цифру 1.
4.Затем в ячейке C1 пишу точку с запятой(;). 
5.Потом делаю экспорт в формате txt с раздел табуляции.
6.В файле txt должно получиться: Kolobok;1;

Посмотри файлик. Выкрутишся наверняка.

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


В этом примере детально описана и разобрана автоматизация копирования и переименования листов Excel с исходными кодами макросов.

Как копировать и переименовать лист Excel макросом

Представьте ситуацию: Вы готовите планы работ для сотрудников определенного отдела фирмы. Пример таблицы плана выглядит так:

Шаблон плана.

Руководитель этого отдела пожелал, чтобы названия листов планов работ для каждого сотрудника содержали их имена и фамилии.

Многократное копирование листов шаблона для составления и заполнения планов работ сотрудников с переименованием, потребует много времени и сил если делать все это вручную. Поэтому напишем свой макрос, который упростит данную задачу.

Техническое Задание (ТЗ) для макроса заключается в следующем. После выделения ячеек, которые содержат названия для листов нужно скопировать лист с шаблоном для планов работ ровно столько сколько будет выделенных ячеек и ввести соответствующие названия в ярлычки.

Примечание. В программировании, как и в многих других технических сферах деятельности (например, в бизнес-планировании) – без ТЗ результат ХЗ! Автор цитаты известный бизнесмен и предприниматель Дмитрий Потапенко.

Для этого сначала откройте редактор кода макроса: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» (ALT+F11):

РАЗРАБОТЧИК.

В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него следующий код макроса:

Sub PlanRabot()
  Dim diapaz As Range
  Dim i As Long
  Dim list As Worksheet
On Error Resume Next
Set diapaz = Application.InputBox("Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!", Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = ActiveSheet
For i = 1 To diapaz.Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
Next
End Sub

Модуль с кодом.

Теперь если вы хотите скопировать лист шаблона для заполнения плана работ и создать копии плана для каждого сотрудника имена с фамилиями которых будут присвоены названиям листа, то перейдите на исходный лист с шаблоном плана работ и выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«PlanRabot»-«Выполнить». Сразу же после запуска макроса появиться диалоговое окно:

Окно с полем ввода.

Теперь перейдите на лист «Имена и Фамилии» и выделите в нем диапазон ячеек, которые содержат имена и фамилии сотрудников. И нажмите на кнопку ОК.

Лист Имена и Фамилии.

В результате чего макрос сам автоматически скопирует планы работ для каждого сотрудника и присвоит новым листам соответственные имена и фамилии.



Описание исходного кода макроса для копирования и переименования листов

В начале кода макроса вызываем диалоговое окно для выделения диапазона ячеек на рабочем листе Excel и присвоения адреса диапазона в качестве значения для поля ввода данного диалогового окна.

Перед вызовом инструкции открытия диалогового окна отключается контроль ошибок. А после создания экземпляра объекта Range в переменной diapaz, снова включается контроль ошибок. Сделано так потому, что нажатие на кнопку «Отмена» в диалоговом окне вызовет ошибку выполнения макроса. Если же отключить обработку ошибок то, когда пользователь нажмет на кнопку «Отмена», тогда просто не будут выполняться никакие инструкции макроса.

В случаи если пользователь заполнил поле ввода и нажал на кнопку «ОК», тогда в переменную list присваиваться текущий рабочий лист. После чего внутри цикла он копируется ровно столько раз, сколько было выделено ячеек.

В процессе копирования каждому новому листу присваивается имя, которое берется из значения текущей ячейки из предварительно выделенного диапазона. Текст в ячейках обрезается до 31 символов, так как максимальная длинна наименования листа не может содержать более чем 31 символ.

Если необходимо сделать так чтобы соответственные имена и фамилии сотрудников были не только на ярлычках листов, а и в значении ячейки B1 в каждом листе, тогда перед строкой конца цикла Next добавьте следующую строку кода:

ActiveSheet.Range(«B1») = diapaz(i)

Подобным способом можно вводить имена и названия для других ячеек листа. Достаточно указать желаемый адрес ячейки в кавычках.

Версия кода макроса с дополнительной строкой кода выглядит так:

Sub PlanRabot()
  Dim diapaz As Range
  Dim i As Long
  Dim list As Worksheet
On Error Resume Next
Set diapaz = Application.InputBox("Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!", Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = ActiveSheet
For i = 1 To diapaz.Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
ActiveSheet.Range("B1") = diapaz(i)
Next
End Sub

Пример вставки имен и фамилий не только в ярлычки листов, а и в их определенные пользователем ячейки:

Пример вставки имен.

Читайте также: Макрос для копирования листов Excel с заданным количеством копий.

Таким образом, благодаря макросу в пару кликов мышкой можно выполнить большой объем работы. В данном примере скопировано копий только для 8-ми сотрудников. Особенно ощутимую пользу приносит данный макрос при необходимости копировать большое количество листов. Ведь в некоторых фирмах количество сотрудников, заполняющих планы работы, может превышать 100 человек и более.

Типичная задача. Есть много листов названия которых нас не устраивают. Мы хотим их переименовать. Делать это вручную очень долго.

C надстройкой ЁXCEL это сделать легко.

Перейдите во вкладку «ЁXCEL» главного меню, нажмите кнопку «Листы», в выпавшем списке выберите пункт «Получить список листов книги»:

В открывшемся диалоговом окне установите переключатель в положение «Простой список листов (все листы)» и нажмите «ОК»:

Программа создаст в активной книге новый лист на который выведет названия всех листов:

Как быстро переименовать листы?

Исключите из списка листы, которые вы не хотите переименовывать, а напротив оставшихся введите новые названия, чтобы получилось так:

kak-bystro-pereimenovat-listy_2.png

Выделите диапазон со старыми и новыми названиями листов, перейдите во вкладку «ЁXCEL» главного меню, нажмите кнопку «Листы» и выберите команду «Переименовать листы из списка»:

kak-bystro-pereimenovat-listy_3.png

В открывшемся диалоговом окне нажмите «ОК»:

kak-bystro-pereimenovat-listy_4.png

Указанные листы будут переименованы.

Добавить комментарий

формула на автоматическое изменение названия листа книги

h1dex

Дата: Четверг, 15.02.2018, 13:48 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 27


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

добрый день форумчане! и гуру экселя :)

я через поиск пробовал найти нужную мне тему, но что-то как то не получилось

может есть какая то формула или макрос на автоматическое изменение листа рабочей книги при изменении определённой ячейки?

т.е. у меня к примеру есть рабочая книга (excel-файл) «Продукты»..в ней есть 1 лист с названием «Овощи» и в ячейке к примеру B2 если вставить название «Фрукты» то лист «Овощи» автоматом переименовывается в «Фрукты»

как такое реализовать? было бы неплохо если бы это был автоматический макрос или формула

Сообщение отредактировал h1dexЧетверг, 15.02.2018, 13:49

 

Ответить

китин

Дата: Четверг, 15.02.2018, 13:54 |
Сообщение № 2

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

[vba]

Код

Private Sub Worksheet_Activate()
Dim i&
i = 1
Sheets(i).Name = Sheets(i).[a1].Value
End Sub

[/vba]
У меня работает. в А1 то название в которое нуно переименовать

К сообщению приложен файл:

7163569.xlsm
(13.8 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Сообщение отредактировал китинЧетверг, 15.02.2018, 13:58

 

Ответить

h1dex

Дата: Четверг, 15.02.2018, 15:03 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 27


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

работает..но переименование листа происходит только при переключении на другой лист т.е. переименование листа происходит не сразу

я ещё забыл сказать что у меня 2 ячейки объединены в одну %)

 

Ответить

китин

Дата: Четверг, 15.02.2018, 15:05 |
Сообщение № 4

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

Ну дык поменяйте
[vba]

Код

Private Sub Worksheet_Activate()

[/vba]
на
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)

[/vba]
на изменение ячейки


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

h1dex

Дата: Четверг, 15.02.2018, 15:17 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 27


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

а как полностью будет код? у меня ошибку начало выдавать

я так вставил:

[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&
i = 1
Sheets(i).Name = Sheets(i).[a1].Value
End Sub

[/vba]

 

Ответить

китин

Дата: Четверг, 15.02.2018, 15:22 |
Сообщение № 6

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

я вставил код из вашего поста в свой пример: никакой ошибки


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

китин

Дата: Четверг, 15.02.2018, 15:28 |
Сообщение № 7

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

А, у вас наверное лист не первым идет. Попробуйте так
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
Sh = Range(«A1»).Value
ActiveSheet.Name = Sh
End Sub

[/vba]
в модуль листа


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Сообщение отредактировал китинЧетверг, 15.02.2018, 15:28

 

Ответить

h1dex

Дата: Четверг, 15.02.2018, 15:43 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 27


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

работает..спасибо

 

Ответить

Like this post? Please share to your friends:
  • Автоматическое оформление в word что это
  • Автоматическое открытие файла excel
  • Автоматическое округление в excel в большую сторону
  • Автоматическое оглавление возможно вставить в документ word если к абзацам которые
  • Автоматическое оглавление в текстовом редакторе microsoft word