2015-09-11 2 views
0

Я построил диапазон имен для 20 ячеек, чтобы я мог вводить новый список проектов, который будет варьироваться от 1 до 20. Я хочу написать макрос, чтобы он читал номер проектов и создает правильное количество вкладок и называет вкладку после имени проекта, указанного в именованном диапазоне. Я сделал все это, но я не могу заставить функцию countA работать. Именованный диапазон - csCount. если я изменил цикл For на правильный номер в одном экземпляре (если я ставлю 7, потому что сейчас у меня есть 7 проектов), петля и макрос верны. Я хочу сделать его более динамичным с помощью countA. Огромное спасибо за помощь.Excel VBA CountA метод по именованному диапазону

Sub generateDepartments() 

Dim tabs As Integer 
Dim sName As String 
Dim i As Integer 
Dim j As Integer 
Dim csCount As Variant 




tabs = Application.CountA(csCount) 

j = 5 
i = tabs 



For i = 2 To Application.CountA(csCount) 

    Worksheets("Input").Activate 
    sName = Cells(j, 3).Value 
    Worksheets.Add(after:=Worksheets(i)).Name = sName 

    j = j + 1 

Next 


End Sub 
+0

https://msdn.microsoft.com/en-us/library/office/ff823060.aspx – Raystafarian

ответ

1

Прежде всего, необходимо создать переменную для доступа к именованный диапазон: Set csCount = ActiveWorkbook.Names("csCount").RefersToRange или Set csCount = ActiveSheet.Range("csCount")

Затем используйте Application.WorksheetFunction.CountA(csCount)

Кроме того, лучше определить как диапазон вместо Variant Dim csCount As Range

+0

Привет, Лукас, это сработало отлично, спасибо – KM617

+0

как я могу принять ответ? – KM617

+0

просто нажмите на V (правильный знак) в левой части ответа, чуть ниже ответа. ТКС – Lucas

Смежные вопросы