Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Lab3-FctiiSimple

Lab3-FctiiSimple

Ratings: (0)|Views: 0|Likes:
Published by Martin Barbarozas
Lab3-FctiiSimple
Lab3-FctiiSimple

More info:

Categories:Types, School Work
Published by: Martin Barbarozas on Mar 14, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/10/2014

pdf

text

original

 
Laborator VBA pentru Excel 3
Vectori în VBA
Pentru a lucra cu vectori în Excel VBA, vom transmite ca parametrii în func
ia VBA o
plaj
ă
de valori
(
Range
).
Func
ii Simple care returneaz
ă
o singur
ă
valoare – Suma elementelor unui vector:
 1. Lansa
i Microsoft Excel2. Lansa
i Visual Basic Editor3. In VBE ad
ă
uga
i un modul Module14. Tasta
i codul de mai jos in modulul Module1
Option ExplicitPublic Function SumaVector(rng As Range) As DoubleDim i As IntegerDim n As IntegerDim Suma As Doublen = rng.Rows.CountReDim Vect(1 To n) As DoubleSuma = 0For i = 1 To nVect(i) = rng(i)Suma = Suma + Vect(i)Next iSumaVector = SumaEnd Function
5. Lansa
i comanda
Compile VBAProject
 din meniul
Debug
pentru a verifica codul6. Activa
i foaia de calcul Excel
ş
i insera
iurm
ă
toarea serie de valori:A B C D1 12 33 54 75 96 117. Muta
i cursorul în celula B6
ş
i lansa
icomanda
Insert Function
. Selecta
ifunc
ia SumaVector în categoria
UserDefined
.8. În fereastra
Function Arguments
,selecta
i plaja de celule A1:A6
ş
i clic OK.
Observa
ii
Instruc
iunea
ReDim
permite dimensionarea sau redimensionarea unui tablou alocat dinamic care a fostdeclarat formal cu instruc
iunea
Dim
. Dac
ă
instruc
iunea formal
ă
 
Dim
lipse
ş
te, tabloul va fi declarat la primadimensionare dinamic
ă
.
Range
este un obiect Excel care poate fi o celul
ă
, un rând, o coloan
ă
sau un grup de celule.
Rows
este o proprietate a obiectului
Range
, iar
Count
este o proprietate a
Rows
. Proprietatea
Count
nereturneaz
ă
num
ă
rul de rânduri ale obiectului Range.
Maximul elementelor unui vector:
1. Ad
ă
uga
i func
ia public
ă
al
ă
turat
ă
înmodulul Module1.2. Activa
i foaia de calcul Excel
ş
i insera
iformula MaxVector în celula C6, selectândaceea
ş
i plaj
ă
de celule ca în exemplulprecedent (=MaxVector(A1:A6)).
Public Function MaxVector(rng As Range) As DoubleDim i As IntegerDim n As IntegerDim Max As Double' Preluarea plajei de celulen = rng.Rows.CountReDim Vect(1 To n) As DoubleFor i = 1 To n: Vect(i) = rng(i): Next iMax = Vect(1)For i = 2 To nIf (Vect(i) > Max) ThenMax = Vect(i)End IfNext iMaxVector = MaxEnd Function
Observa
ii
De
ş
i VB nu are un simbol pentru separareainstruc
iunilor, putem grupa mai multeinstruc
iuni pe un singur rând, dac
ă
 instruc
iunile sunt separate prin
:
(dou
ă
 puncte).
 
Function ScaleVector(rng As Range, sc As Double) As Double()Dim i As IntegerDim n As Integer' Preluarea plajei de celulen = rng.Rows.CountReDim Vect(1 To n) As DoubleFor i = 1 To n: Vect(i) = rng(i): Next iReDim Scaled(1 To n) As DoubleFor i = 1 To nScaled(i) = sc * Vect(i)Next iScaleVector = ScaledEnd Function
Func
ii simple care returneaz
ă
 un vector – Înmul
irea cu unscalar:
1. Ad
ă
uga
i func
ia public
ă
 al
ă
turat
ă
în modulul Module1.2. Activa
i foaia de calcul Excel
ş
iinsera
i formula ScaleVector încelula D1, selectând aceea
ş
iplaj
ă
de celule ca în exemplulprecedent
ş
i da
i valoarea 3scalarului sc(=ScaleVector(A1:A6,3)).
Observa
ii
Remarc
ă
m c
ă
la inserarea formulei ScaleVector, Excel va insera în celula care con
ine formula doar primulelement al vectorului returnat de func
ie. Pentru a insera întreg vectorul returnat de func
ie, va trebui s
ă
folosim
Formulele matrice.Pentru a ad
ă
uga o formul
ă
matrice proceda
i astfel:
3. Edita
i formula din celula D1 de forma =TRANSPOSE(ScaleVector(A1:A6,3)).4. Selecta
i grupul de celule D1:D6.5. Edita
i formula din D1 ap
ă
sând F2.6. Ap
ă
sa
i CTRL+SHIFT+ENTER.Pentru a g
ă
si un singur element al vectorului returnat de func
ie, putem folosi
ş
i func
ia INDEX. De exemplu,pentru a insera într-o celul
ă
elementul al patrulea al vectorului returnat de func
ia ScaleVector, inser
ă
mformula
=INDEX(ScaleVector(A1:A6,3),4)
.
Public Function Suma2Vec(rng1 As Range, rng2 As Range) As _VariantDim i As IntegerDim n1 As IntegerDim n2 As Integer' Preluarea plajei de celulen1 = rng1.Rows.Countn2 = rng2.Rows.CountIf (n1 <> n2) ThenSuma2Vec = "Dimensiuni inegale."Exit FunctionEnd IfReDim Vect(1 To n1) As DoubleFor i = 1 To n1Vect(i) = rng1(i) + rng2(i)Next iSuma2Vec = VectEnd Function
Suma a 2 vectori:
1. Ad
ă
uga
i func
ia public
ă
 al
ă
turat
ă
în modulul Module1.2. Activa
i foaia de calcul Excel
ş
iinsera
i formula Suma2Vec încelula E1,
ş
i da
i parametriifunc
iei plajele de celule A1:A6
ş
i D1:D6.3. Modifica
i formula din celulaE1, imbricând-o în func
ia
TRANSPOSE
, ca în obseva
iaprecedent
ă
.4. Ad
ă
uga
i o formul
ă
matrice înplaja de celule E1:E6, cum afost explicat în observa
iaprecedent
ă
(
Pentru a ad
ă
ugao formul
ă
matrice
).

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->