Я в затруднении, пытаясь выяснить, где этот код отключается. Я ищу, чтобы переименовать activesheet, используя concat двух диапазонов на activesheet и некоторый статический текст. Когда в рабочей книге находится только один рабочий лист, код отлично работает. Как только будет добавлен второй рабочий лист, я получаю Runtime Error 1004. Я выделим строку кода, где она разбивается. Этот код в настоящее время находится в нормальном модуле.Excel VBA Runtime Ошибка 1004 при переименовании ActiveSheet
Option Explicit
Sub updateName()
Dim fNumber
Dim pCheckNumber
Dim asName As String
Dim tempASName As String
Dim worksheetName As Object
If ActiveSheet.Name = "Launch Page" Then Exit Sub
fNumber = ActiveSheet.Range("FlightNumber").Value
pCheckNumber = ActiveSheet.Range("PerformanceCheckNumber").Value
If fNumber <> "" And pCheckNumber <> "" Then
tempASName = "Flight " & fNumber & " | Run " & pCheckNumber & " (0.0%)"
asName = tempASName
MsgBox ActiveSheet.Name & vbCr & asName
ActiveSheet.Name = asName
worksheetName.Caption = asName
Else
Exit Sub
End If
End Sub
Я в процессе добавления проверки ошибок, чтобы убедиться, что у меня нет дубликатов имен листов. Однако из-за характера имен полей это никогда не произойдет.
Я ценю все идеи!
Итак, где код разбивается? –
Не могли бы вы добавить примерное значение переменной 'asName'? может быть символ, который не разрешается использовать в имени листа или /, а текст может превышать ограничение длины для имени листа. –
Извините, код разбивается на оператор «if» - строка ActiveSheet.Name. Значение asName в приведенном выше примере будет «Flight 5 | Run 1 (0.0%)). Насколько я могу судить, я не использую никаких запрещенных символов, и я нахожусь в пределах 31 символа. –