Zachodniopomorski uniwersytet technologiczny instytut technologii mechanicznej



Pobieranie 366.54 Kb.
Strona5/9
Data28.04.2016
Rozmiar366.54 Kb.
1   2   3   4   5   6   7   8   9

Przykłady.




1.Zliczanie elementów.



Function zlicz_wydatki(dzień As Date, daty As Range) As Integer

'

'Zlicza wydatki w określonym dniu

'

Dim i As Integer

zlicz_wydatki = 0

For i = 1 To daty.Count

If dzień = daty(i) Then zlicz_wydatki = zlicz_wydatki + 1

Next i

End Function

2.Sumowanie wartości liczbowych.



Sub suma_wydatków_rozrywka()

'

'Oblicza sumę wydatków z grupy rozrywka.

'

Dim kwota As Range, rodzaj As Range, i As Integer, suma As Currency

Set kwota = Range("kwota")

Set rodzaj = Range("rodzaj")

suma = 0

For i = 1 To rodzaj.Count

If rodzaj(i) = "rozrywka" Then suma = suma + kwota(i)

Next i

MsgBox "suma wydatków z grupy rozrywka wynosi " & suma & " zł"

End Sub

3.Obliczanie maksymalnej wartości.



Sub dzien_max()

'

'Podaje dzień, w którym zanotowano największy pojedynczy wydatek.

'

Dim kwota As Range, dzien As Date, data As Range, i As Integer

Dim max As Currency

Set kwota = Range("kwota")

Set data = Range("data")

For i = 1 To kwota.Count

If kwota(i) > max Then

max = kwota(i)

dzien = data(i)

End If

Next i

MsgBox "największy wydatek " & max & " zł był w dniu " & dzien

End Sub

4.Tworzenie listy.



Sub lista_zakupów()

'

'Wypisuje listę zakupów rodziców.

'

Dim zakup As Range, kto As Range, lista As Range

Dim i As Integer, j As Integer

Set zakup = Range("zakup")

Set kto = Range("kto")

Set lista = Range("h10:h60")

j = 1

For i = 1 To kto.Count

If kto(i) = "mama" Or kto(i) = "tata" Then

lista(j) = zakup(i)

j = j + 1

End If

Next i

End Sub

5. Zaznaczanie komórek kolorem.



Sub jajka()

'

'Zaznacza na żółto zakupy jajek

'

Dim zakup As Range, i As Integer

Set zakup = Range("zakup")

For i = 1 To zakup.Count

If InStr(zakup(i),"jajka") > 0 Then zakup(i).Interior.ColorIndex = 6

Next i

End Sub

Ćwiczenie 6


Zagadnienia:

Zadanie 1

W nowym arkuszu kalkulacyjnym, w edytorze VBA napisz i uruchom następujące makro, które wpisuje do komórek ich adres w formacie zbliżonym do R1C1:


Sub wypisz()

Dim z As Range, i As Integer, j As Integer

Set z = [a1]

For i = 1 To 20

For j = 1 To 10

z(i, j) = "k" & j & "w" & i



Next j

Next i

End Sub
Zadanie 2

Wzorując się na przykładzie powyżej napisz makro wypisz2 , które wpisuje do komórki jej nazwę w formacie: oznaczenie literowe kolumny + numer wiersza np. do komórki C2 wpisuje napis „C2”. W tym celu wprowadź tablicę 1-wymiarową za pomocą instrukcji:


Dim t As Variant

t = Array("A","B","C","D","E","F","G","H","I","J")


Uwaga: Domyślnie Visual Basic numeruje tablice począwszy od 0. W celu numerowania tablic zgodnego z numerowaniem zakresów w Excelu tzn. od 1 należy wypisać na samej górze w edytorze VBA : Option Base 1

Zadanie 3

Napisz makro, które przesuwa cyklicznie wiersze w zakresie z wypełnionymi w zadaniu 2 komórkami wg następującego schematu:















































































































Zadanie 4

Napisz makro, które przesuwa cyklicznie kolumny w zakresie z wypełnionymi w zadaniu 2 komórkami wg schematu podobnego jak w zadaniu 3.


Zadanie 5

Przepisz i przetestuj na dowolnym niepustym prostokątnym zakresie w arkuszu kalkulacyjnym funkcję tablicową wypisaną poniżej, która obraca dowolny prostokątny zakres o 180 stopni (do góry nogami):


Function obrot(z1 As Range) As Variant

Dim z2() As Variant, nc As Integer

Dim nr As Integer, i As Integer, j As Integer

nc = z1.Columns.Count 'Wyznaczenie ilości kolumn

nr = z1.Rows.Count 'Wyznaczenie ilości wierszy

ReDim z2(1 To nr, 1 To nc) 'zmiana rozmiaru tablicy z2

For i = 1 To nr

For j = 1 To nc

z2(i, j) = z1(nr + 1 - i, nc + 1 - j)



Next j

Next i

obrot = z2



End Function




Zadanie 6

Napisz funkcję tablicową, która transponuje macierz prostokątną.


Zadanie 7

Napisz funkcję tablicową, która transponuje prostokątną macierz względem drugiej przekątnej.


Zadanie domowe:

Napisz funkcję tablicową, która z dowolnego prostokątnego obszaru wypisuje do jednokolumnowego zakresu dane z niepustych komórek.




as










pas




as







las










pas










44




=>

las




Ala













44







ma










Ala

kota




i




psa




ma



















kota



















i



















psa
1   2   3   4   5   6   7   8   9


©absta.pl 2016
wyślij wiadomość

    Strona główna