| Jak uzyskać tablicę z nazwami wszystkich arkuszy aktywnego pliku? |
|
Problem: Potrzebuję funkcji, która zwraca nazwy wszystkich arkuszy typu "Worksheet" w pliku. Rozwiązanie: Możesz skorzystać np. z takiej funkcji własnej. Ponieważ funkcja zwraca w wyniku tablicę, należy ją zatwierdzić tablicowo (Ctrl+Shift+Enter) ![]() Function ListaArkuszy(Optional iNumer As Integer = 0) 'Funkcja zawiera tylko jeden opcjonalny argument typu Integer 'Domyślna wartość 0 oznacza, że w wyniku zwracana jest jednowymiarowa tablica pionowa 'Wartość -1 oznacza, że w wyniku zwracana jest jednowymiarowa tablica pozioma 'Wartość z przedziału między 1 a liczbą wszystkich arkuszy w pliku pozwala na wybór konkretnej nazwy 'Inna wartość generuje błąd wartości #N/D! Dim avNazwyArkuszy() As Variant Dim iIleArkuszy As Integer Dim iLicznik As Integer iIleArkuszy = ThisWorkbook.Worksheets.Count ReDim avNazwyArkuszy(1 To iIleArkuszy) For iLicznik = LBound(avNazwyArkuszy) To UBound(avNazwyArkuszy) avNazwyArkuszy(iLicznik) = ThisWorkbook.Worksheets(iLicznik).Name Next iLicznik Select Case iNumer Case 0: ListaArkuszy = Application.Transpose(avNazwyArkuszy) Case -1: ListaArkuszy = avNazwyArkuszy Case 1 To iIleArkuszy: ListaArkuszy = avNazwyArkuszy(iNumer) Case Else: ListaArkuszy = CVErr(xlErrNA) End Select End Function |
|
| Zmieniony ( Czwartek, 01. Lipiec 2010 17:49 ) |
.jpg)