Moje doświadczenia z Excelem, Accesem i programowaniem w VBA

Wpisy z tagiem: funkcje VBA

piątek, 08 czerwca 2012

W komentarzu pod jedną z notek znalazło się pytanie - jak odczytać katalog o jedno piętro wyżej niż lokalizacja aktywnego skoroszytu. Jest to tylko pewna modyfikacja funkcji opisanej tu:

VBA - ścieżka dostępu

Poszczególne katalogi w ścieżce dostępu są oddzielane znakiem "\" - więc wystarczy sprawdzić, na którym miejscu jest ostatni znak i pobrać z nazwy  liczbę znaków o 1 mniejszą.
Można zrobić to za pomocą kilkakrotnego użycia funkcji Instr, a można też przeszukiwać każdy znak za pomocą funkcji Mid.
Na przykład tak:

Private Function Nazwa_Katalogu() As String

Dim i As Integer
Dim Długosc As Integer
Dim Katalog As String
Dim k As Integer
Dim Znak As String

Katalog=ActiveWorkbook.Path
Dlugosc=Len(Katalog)
k=0

For i=1 to Dlugosc
     Znak=Mid(Katalog,i,1)
     If Znak="\" Then k=i

Next i

Nazwa_Katalogu=Left(Katalog,(k-1))

End Function

 Funkcja ta zwraca ścieżkę dostępu do katalogu o piętro wyżej niż ten, w którym znajduje się aktywny akoroszyt.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

 


czwartek, 31 maja 2012

Pracując w skoroszycie Excela, zapisując go od czasu do czasu (dobry nawyk - wie o tym każdy, kto kiedyś stracił efekty swojej pracy), na ogół rzadko się zastanawiamy nad tym, gdzie dokładnie plik został zapisany. Szczególnie jeżeli defaultowe ustawienie jest standardowe, zapisane gdzieś tam w podfolderze podfoldera dokumentów profilu osobistego.
Problem pojawia się w sytuacji, gdy potrzebna jest pełna nazwa pliku - ścieżka dostępu oraz nazwa z rozszerzeniem.

Bezpośrednio w Excelu możemy ją zobaczyć korzystając z formantu Moja lokalizacja na pasku narzędzi. Nie należy on jednak do ustawień standardowych, trzeba dołożyć go samemu. Opis jak to zrobić, właśnie na przykładzie formantu Moja lokalizacja opisałam tu:

Pasek szybkiego dostępu

Z poziomu kodu VBA - wystarczy stworzyć funkcję wykorzystującą ActiveWorkbook.Path oraz ActiveWorkbook.Name.
Na przykład tak:

Private Function Pelna_Nazwa_Pliku() As String

Dim Nazwa_Pliku As String

Dim Sciezka_Dostepu As String

Nazwa_Pliku=ActiveWorkbook.Name

Sciezka_Dostepu=ActiveWorkbook.Path

Pełna_Nazwa_Pliku=Sciezka_Dostepu & "\" & Nazwa_Pliku

End Function

 

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

 


wtorek, 29 maja 2012

Nazwa pliku w kodzie VBA wyznaczana jest poprzez słowo kluczowe Name.
Chcąc wyznaczyć nazwę aktualnie otwartego pliku wystarczy prosta funkcja:

Private Function Nazwa_Pliku()

Nazwa_Pliku=ActiveWorkbook.Name

End Function

Właściwość Name obiektu ActiveWorkbook wyznacza nazwę aktywnego skoroszytu.


Ścieżka dostępu do katalogu w kodzie VBA wyznaczana jest poprzez słowo kluczowe Path.
Chcąc wyznaczyć katalog aktualnie otwartego pliku wystarczy prosta funkcja:

Private Function Nazwa_Katalogu()

Nazwa_Katalogu=ActiveWorkbook.Path

End Function

Właściwość Path obiektu ActiveWorkbook wyznacza właśnie katalog, w którym znajduje się aktywny skoroszyt.


niedziela, 11 grudnia 2011

SMALL() to jedna z metod obiektu WorksheetFunction, będąca wywołaniem funkcji arkuszowej Excela MIN.K()
W wyniku jej działania otrzymujemy k-tą wartość z danego zestawu liczb, licząc od najmniejszej do największej.
Przykładowe rozwiązanie może wyglądać tak:

Public Function MojeMinimumNrK(MojZakres,MojeK)

MojeMinimumNrK= WorksheetFunction.SMALL(MojZakres,MojeK)

End Function

Wartość k musi być liczba naturalną.

Warto tu też zauważyć, że w sensie logicznym wszystkie liczby z danego zakresu są ustawiane w ciągu od najmniejszej do największej i zwracany jest k-ty wyraz tego ciągu.
W przypadku, gdy w danym zakresie występują powtarzające się liczby - może to znacząco wpłynąć na wynik.

 

 

 

 

czwartek, 08 grudnia 2011

LARGE() to jedna z metod obiektu WorksheetFunction, będąca wywołaniem funkcji arkuszowej Excela MAX.K()
W wyniku jej działania otrzymujemy k-tą wartość z danego zestawu liczb, licząc od największej do najmniejszej.
Przykładowe rozwiązanie może wyglądać tak:

Public Function MojeMaksimumNrK(MojZakres,MojeK)

MojeMaksimumNrK= WorksheetFunction.LARGE(MojZakres,MojeK)

End Function

Wartość k musi być liczba naturalną.

Warto tu tez zauważyć, że w sensie logicznym wszystkie liczby z danego zakresu są ustawiane w ciągu od największej do najmniejszej i zwracany jest k-ty wyraz tego ciągu.
W przypadku, gdy w danym zakresie występują powtarzające się liczby - może mieć to duże znaczenie.

 

 

 

 

niedziela, 04 grudnia 2011

MAX() to jedna z metod obiektu WorksheetFunction, będąca wywołaniem funkcji arkuszowej Excela MIN() .W wyniku jej działania otrzymujemy wartość minimalną z danego zestawu liczb. Przykładowe rozwiązanie może wyglądać tak:

Public Function ObliczMinimum(lLiczba1,Liczba2)

ObliczMaksimum= WorksheetFunction.MAX(Liczba1,Liczba2)

End Function

Argumentami funkcji są pojedyncze liczby lub zestawy liczb.

 

 

 

poniedziałek, 28 listopada 2011

MAX() to jedna z metod obiektu WorksheetFunction, będąca wywołaniem funkcji arkuszowej Excela MAX()  .W wyniku jej działania otrzymujemy wartość maksymalną z danego zakresu liczb. Przykładowe rozwiązanie może wyglądać tak:

Public Function ObliczMaksimum(lLiczba1,Liczba2)

ObliczMaksimum= WorksheetFunction.MAX(Liczba1,Liczba2)

End Function

Argumentami funkcji są pojedyncze liczby lub zestawy liczb.

  

 

 

piątek, 19 sierpnia 2011

LCM() to jedna z metod obiektu WorksheetFunction, będąca wywołaniem funkcji arkuszowej Excela LCM(). W wyniku jej działania wyznaczamy najmniejszą wspólną wielokrotność 2 lub więcej liczb.

Przykładowe rozwiązanie może wyglądać tak:

Public Function ObliczNWW(lLiczba1,Liczba2)

ObliczNWW= WorksheetFunction.LCM(Liczba1,Liczba2)

End Function

Argumenty funkcji muszą być liczbami naturalnymi. Wartość funkcji również jest liczbą naturalną.

 

 

 

czwartek, 04 sierpnia 2011

GCD to jedna z metod obiektu WorksheetFunction, będąca wywołaniem funkcji arkuszowej Excela GCD. W wyniku jej działania wyznaczamy największy współny podzielnik liczb. Przykładowe zastosowanie może wyglądać tak:

Public Function ObliczNWP(lLiczba1,Liczba2)

ObliczNWP= WorksheetFunction.GCD(Liczba1,Liczba2)

End Function

Argumenty funkcji musza być liczbami naturalnymi. Wartość funkcji również jest liczbą naturalną.

 

 

 
1 , 2 , 3
| < Wrzesień 2017 > |
Pn Wt Śr Cz Pt So N
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  


Książki warte polecenia
zobacz szczegóły...


A tu oferta na dziś:





ministat liczniki.org



Napisz do mnie!