Funkcje arkusza danych w Excel VBA 4


1. Funkcje arkuszowe – Jak korzystać z funkcji Excela w VBA 

Zastanawiałeś się w jaki sposób możemy skorzystać z funkcji Excela w VBA? Z pomocą przychodzą nam funkcje arkuszowe. Jak wiemy, arkusz Excela oferuje nam szereg użytecznych funkcji. Zasób funkcji, z których możemy korzystać w kodzie VBA jest nieco bardziej ograniczony. Dzięki VBA możemy bez przeszkód korzystać z części funkcji, które oferuje nam arkusz danych Excela. Nie są to wszystkie dostępne funkcje, jednak znacząco poszerzają i ułatwiają nam programowanie w VBA. W przypadku, gdybyśmy chcieli skorzystać z funkcji arkusza danych, możemy je wywołać krótkim poleceniem w dowolnym kodzie VBA w Excelu: Application.WorksheetFunction.ANGIELSKA_NAZWA_FUNKCJI. Samą nazwę funkcji musimy wprowadzić zgodnie z angielskim nazewnictwem. Poniżej przykład zastosowania funkcji zaokrąglającej, którą z Excela znamy pod nazwą ZAOKR(). Przykład zawiera dwie wersje. Wersja pierwsza, to wykorzystanie funkcji arkuszowej. Przykład drugi przedstawia analogiczną funkcję, którą oferuje nam kod VBA. Sam wynik wyświetlmy w formie okna MsgBox.

Kurs Excel VBA - Funkcje Arkuszowe VBA

Kurs Excel VBA – Funkcje Arkuszowe VBA

Jak widzimy na naszym przykładzie, wyniki zastosowania naszych funkcji są takie same.

2. Funkcje arkuszowe VBA – Zadania (Rozwiązanie możesz wpisać w komentarzu)

2.1 Wypróbuj działanie funkcji max oraz min na dowolnych danych liczbowych wykorzystując funkcje arkuszowe VBA.

3.2 Sprawdź czy funkcję WYSZUKAJ.PIONOWO() możesz wywołać poprzez kod VBA. Rozwiązanie znajdziesz w tym artykule.


Dodaj komentarz

Twój adres email nie zostanie opublikowany.

4 komentarzy do “Funkcje arkusza danych w Excel VBA

  • GreG

    Zadanie 1.
    Function maxx(tabela As Object) As Integer

    maxx = Application.WorksheetFunction.max(tabela)

    End Function

    Zadanie 2.
    Function WyszukajPionowo(Szukana_wartość As Integer, tabela As Object, NumerKolumny As Integer, DokładnaWartość As Boolean) As Variant

    WyszukajPionowo = Application.WorksheetFunction.VLookup(Szukana_wartość, tabela, NumerKolumny, DokładnaWartość)

    End Function

  • Marcin

    2.1

    Option Explicit
    Sub FunkcjeArkuszowe2()

    MsgBox “Najmniejsza z liczb zbioru 1-11 jest: ” & Application.WorksheetFunction.Min(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
    MsgBox “Największą z liczb zbioru 1-11 jest: ” & Application.WorksheetFunction.Max(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

    End Sub

    2.2

    Wychodzi na to, że nie ma możliwości zaimportowania funkcji wyszukaj pionowo do VBA. Program generuje błąd  1004

  • Marcin

    I korekta.

    Błąd był generowany, ponieważ nie wskazałem w funkcji zasięgu komórek. W sensie wskazałem go tak, jak w funkcji arkuszowej, a nie z poleceniem Range.

    Teraz wykminić tylko, w jaki sposób zmusić VBA do automatycznego sprawdzenia kiedy kończy się ciąg komórek, dla których wyszukujemy wartości.

    • kew

      świetny kurs

      Sub Wyszukaj_Pionowo()
      Dim a As String
      ‘zakres danych A1-B7

      a = InputBox(“Wprowadź szukany tekst”)
      MsgBox Application.WorksheetFunction.VLookup(a, Range(“A1:B7”), 2, 0)

      End Sub