[EXCEL] Przekazywanie tablic jako parametrów do funkcji

Witam, nie wiem jak przekazać tablice jako parametr do funkcji. I druga sprawa jak uzyskać na wyjściu funkcji tablicę. Najprostszym przykładem pierwszego problemu jest funkcja [b]SUMA[/b].

Odpowiedzi: 4

No właśnie chodziło mi to. Już sam do tego doszedłem że trzeba przekazać parametr typu [b]range[/b]. Mimo wszystko dziękuje za odpowiedź. Pozdrawiam
pulkownik
Dodano
03.07.2007 01:07:34
Ponieważ niezpełnie rozumiem gdzie zmierzamy to spróbuj przeanalizować coś takiego Funkcja wywołująca [b]Function start() Dim obszar As Range Set obszar = Range("A1:B10") start = dwa_razy(obszar) End Function[/b] Funkcja licząca (podwaja wartość każdej komórki z jednego zakresu) [b]Function dwa_razy(zakres As Range) Dim tablica() As Double 'deklaracja tablicy bez wielkości Dim licznik As Long 'deklaracja zmiennej dla wierszy Dim nr As Integer ' deklaracja zmiennej dla kolumn ReDim tablica(1 To zakres.Rows.Count, 1 To zakres.Columns.Count) 'gdy znamy już wielkość tablicy For nr = 1 To zakres.Columns.Count 'petla dla kolumn For licznik = 1 To zakres.Rows.Count 'petla dla wierszy tablica(licznik, nr) = zakres(licznik, nr).Value * 2 'zapisanie do tablicy podwojonej komórki z zakresu Next licznik Next nr dwa_razy = tablica 'wyprowadzenie danych End Function[/b] Jeśli będziesz chciał ją wykorzystać w arkuszu to należy wskazać zakres komórek, przejść do edycji (klawisz F2) i zatwierdzić Ctrl+Shift+Enter
Trebor
Dodano
02.07.2007 20:08:10
Chyba zapomniałem dopisać że to ma działać jak funkcja w VBA. Dzięki wielkie na pewno się przydadzą te informację. Nasuwa mi się kolejne pytanko jak zrobić coś takiego tylko żeby parametrem był zakres komórek. Pozdrawiam
pulkownik
Dodano
01.07.2007 17:17:04
Na początek z pomoc z pomocy [i]Tablica parametrów może być stosowana do przekazywania do procedury tablicy argumentów. Przy definiowaniu procedury nie jest konieczna znajomość liczby elementów tablicy. Do oznaczenia tablicy parametrów należy używać słowa kluczowego ParamArray. Tablica musi być zadeklarowana jako tablica typu Variant i musi być ostatnim argumentem w definicji procedury. Poniższy przykład pokazuje, w jaki sposób można zdefiniować procedurę korzystającą z tablicy parametrów: Sub DowolnaLiczbaArg(strNazwa As String, ParamArray intPunkty() As Variant) Dim intI As Integer Debug.Print strNazwa; " Punktacja" ' Zastosuj funkcję UBound, aby określić górne ograniczenie tablicy. For intI = 0 To UBound(intPunkty()) Debug.Print " "; intPunkty(intI) Next intI End Sub Poniżej przedstawiono przykłady wywołania powyższej procedury: DowolnaLiczbaArg "Jacek", 10, 26, 32, 15, 22, 24, 16 DowolnaLiczbaArg "Agata", "Dużo", "Mało", "Średnio", "Dużo"[/i] Czy te informacje są wystarczające? Pozdrawiam
Trebor
Dodano
01.07.2007 11:00:38
pulkownik
Dodano:
29.06.2007 21:33:18
Komentarzy:
4
Strona 1 / 1