0
Я пытаюсь имен рабочих листов на основе списка имен в Sheets («Run»). Range («F4») к последней строке с данными. Код, который у меня ниже, работает, когда я нахожу один рабочий лист.именование в цикле VBA
Sub list_Days()
Dim sName As String
Dim i As Integer
i = ActiveWorkbook.Worksheets.Count
sName = Sheets("Run").Range("F4")
Worksheets("Security Distribution").Copy After:=Worksheets(i)
ActiveSheet.Name = sName
End Sub
Мой вопрос: Может кто-то помочь мне с эффективного цикла который преодолеет мою проблему.
Был уже существующий '' Rows.Count' не Роу .Count' с решением в [этот ответ] (http://stackoverflow.com/questions/30426074/name-worksheets-based-on-a-list-of-names/30426261#30426261), который вы заметили, что вы решили. Я отредактировал ответ, чтобы отразить 'Rows.Count'. – Jeeped
Спасибо за это. Ответ был эффективным в этом сценарии, но он не работает в другом макросе, который я запускаю сейчас. Если я применяю ответ выше, я получаю неправильное имя. – James
Вышеприведенное будет работать в первый раз, но вы должны переопределить * i * во второй раз, так как он больше не равен количеству рабочих листов. Каждый раз, когда вы добавляете другой рабочий лист и называете его, * i * должен быть поднят на * 1 * или переназначен с помощью 'i = ActiveWorkbook.Worksheets.Count'. – Jeeped