Обратите внимание, что вы смешиваете Sheets
и Worksheets
.Это не то же самое!
Хотя Sheets
может содержать объекты листа и диаграммы, Worksheets
содержит только листы.Поэтому может существовать 8 листов (5 листов и 3 графика).Поэтому измените все Sheets
на Worksheets
.
Также вам необходимо убедиться, что длина имени таблицы не превышает 31 символа, поскольку это ограничение Excel.
Option Explicit
Public Sub RenameTabs()
Dim x As Long
For x = 1 To Worksheets.Count
If Worksheets(x).Range("B3").Value <> "" Then
Worksheets(x).Name = Left$(Worksheets(x).Range("B3").Value, 31)
End If
Next
End Sub
Если ваша ячейка B3 является реальной датой, вы должны либо использовать Format$()
, либо изменить ее на Worksheets(x).Range("B3").Text
, в противном случае ваш .Value
вернет числовое значение даты вместо отформатированной даты.