основная цель - копировать имя листа в массив, и массив переходит от функции к основному коду, чтобы иметь возможность отслеживать новые имена добавленных листов в массив и работать с ними соответственно
Public Function CountWorksheets() As String
Dim i, size As Integer
Dim Arr() As String
size = Worksheets.Count
ReDim Arr(size)
For i = 1 To Worksheets.Count
Arr(i) = Worksheets(i).Name
Next i
CountWorksheets = Arr
End Function
Private Sub RunLoc_Click()
Dim ar() As String
ReDim ar(Worksheets.Count)
j = 1
If Not IsEmpty(Location.Value) Then
RunLoc.Enabled = True
For i = 1 To Worksheets.Count
If Worksheets(i).Name = Location.Value Then
Worksheets(i).Select
Range("a1").Select
End If
Next i
ar = CountWorksheets()
End If
TextBox1.Value = Location.Value
End Sub
Я ожидаю, что Arr и CountWorksheets с одинаковым массивом будут записаны в обе функции, и когда вызывается CountWorksheets, общая сумма массива копируется в новый, который называется ar.