.


:




:

































 

 

 

 


VBA




Visual Basic for Applications, , . VBA , BASIC, 60-.

BASIC , , , . BASIC . GWBASIC Microsoft . MS DOS 5- . IBM BASIC, .

BASIC . , BASIC. , , Pascal, C C++.

80- Microsoft BASIC, QuickBASIC MS DOS, 6- ( Windows 95).

QuickBasic 1992 Microsoft Visual Basic for Windows.

VBA Visual Basic for Windows, . , VBA , .

, Microsoft , , VBA , .

3.3.2 VBA.

, Excel , VBA. . , , , . VBA , .

, Excel , . , Excel . VBA, , .

, - . , - , , .

VBA - , , .

, , Excel. , . . VBA, , , . .

, VBA. , . - VBA.

, VBA , .

, Excel, , , , , .

, , , , - , , . VBA .

, VBA , , , OLE.

3.3.3. , .

VBA . : (, , . Excel ( ) . , , , . , .

.xls, VBA, VBA: . :

Modul1

1) Nzv n* 1* n1

2) P1 1 C7:C16 ( )

3) ( 17) (K7)

 

.

Modul2

1) N1 n1

2)

 

1, 2, 3 .

.

1) Nzv n* 1* n1*

n* 2.

. 1* n1*. . . (. 2) 0.975<1* =<1 0<n1*.<0.0075 n* = 0.005, 0.925<1* =<0.975 0<n1*.<0.0075 n* = 0.005 b .. .

 

Public Function Nzv(Pzv As Double, n1zv As Double)

Dim znach As Double

 

If Pzv <= 1 And Pzv > 0.975 Then

Select Case n1zv

Case 0 To 0.0075

znach = 0.005

Case 0.0075 To 0.0175

znach = 0.009

Case 0.0175 To 0.0275

znach = 0.02

Case 0.0275 To 0.0375

znach = 0.03

Case 0.0375 To 0.0475

znach = 0.04

Case 0.0475 To 0.055

znach = 0.05

Case 0.055 To 0.065

znach = 0.06

Case 0.07 To 0.09

znach = 0.08

Case 0.09 To 0.125

znach = 0.09

Case 0.125 To 0.175

znach = 0.14

Case 0.175 To 0.225

znach = 0.19

Case 0.225 To 0.275

znach = 0.24

Case 0.275 To 0.325

znach = 0.29

Case 0.325 To 0.375

znach = 0.33

Case 0.375 To 0.425

znach = 0.38

Case 0.425 To 0.475

znach = 0.43

Case 0.475 To 0.525

znach = 0.48

Case 0.525 To 0.575

znach = 0.52

Case 0.575 To 0.625

znach = 0.57

Case 0.625 To 0.675

znach = 0.62

Case 0.675 To 0.725

znach = 0.66

Case 0.725 To 0.775

znach = 0.71

Case 0.775 To 0.825

znach = 0.76

Case 0.825 To 0.875

znach = 0.8

Case 0.875 To 0.99

znach = 0.85

Case Is > 0.99

znach = 0.95

End Select

End If

 

If Pzv <= 0.975 And Pzv > 0.925 Then

Select Case n1zv

Case 0 To 0.0075

znach = 0.005

Case 0.0075 To 0.0175

znach = 0.011

Case 0.0175 To 0.0275

znach = 0.02

Case 0.0275 To 0.0375

znach = 0.03

Case 0.0375 To 0.0475

znach = 0.04

Case 0.0475 To 0.055

znach = 0.05

Case 0.055 To 0.065

znach = 0.06

Case 0.07 To 0.09

znach = 0.08

Case 0.09 To 0.125

znach = 0.1

Case 0.125 To 0.175

znach = 0.16

Case 0.175 To 0.225

znach = 0.21

Case 0.225 To 0.275

znach = 0.26

Case 0.275 To 0.325

znach = 0.32

Case 0.325 To 0.375

znach = 0.37

Case 0.375 To 0.425

znach = 0.42

Case 0.425 To 0.475

znach = 0.47

Case 0.475 To 0.525

znach = 0.53

Case 0.525 To 0.575

znach = 0.57

Case 0.575 To 0.625

znach = 0.63

Case 0.625 To 0.675

znach = 0.68

Case 0.675 To 0.725

znach = 0.73

Case 0.725 To 0.775

znach = 0.78

Case 0.775 To 0.825

znach = 0.83

Case 0.825 To 0.875

znach = 0.88

Case 0.875 To 0.99

znach = 0.92

Case Is > 0.99

znach = 1

End Select

End If

 

If Pzv <= 0.1 And Pzv > 0.175 Then

Select Case n1zv

Case 0 To 0.0075

znach = 0.34

Case 0.0075 To 0.0175

znach = 0.52

Case 0.0175 To 0.0275

znach = 0.71

Case 0.0275 To 0.0375

znach = 0.81

Case 0.0375 To 0.0475

znach = 0.86

Case 0.0475 To 0.055

znach = 0.9

Case 0.055 To 0.065

znach = 0.92

Case 0.07 To 0.09

znach = 0.94

Case 0.09 To 0.125

znach = 0.95

Case 0.125 To 0.175

znach = 1

Case 0.175 To 0.225

znach = 1

Case 0.225 To 0.275

znach = 1

Case 0.275 To 0.325

znach = 1

Case 0.325 To 0.375

znach = 1

Case 0.375 To 0.425

znach = 1

Case 0.425 To 0.475

znach = 1

Case 0.475 To 0.525

znach = 1

Case 0.525 To 0.575

znach = 1

Case 0.575 To 0.625

znach = 1

Case 0.625 To 0.675

znach = 1

Case 0.675 To 0.725

znach = 1

Case 0.725 To 0.775

znach = 1

Case 0.775 To 0.825

znach = 1

Case 0.825 To 0.875

znach = 1

Case 0.875 To 0.99

znach = 1

Case Is > 0.99

znach = 1

End Select

End If

 

Nzv = znach

End Function

:

If Then

 

, If N>=0 and N<=9 Then Print Ok

 

Dim As

 

Select Case

 

.

 

Select Case

Case

1

.

.

.

Case......

n-1

End Select

 

:

DoublePrecision #. 16 300 . , . .

 

2) ( 17) (K7)

 

, , .

 

:

 

Public Function ( As Double, N As Double)

Dim km As Double

If >= 0.1 And < 0.125 Then

Select Case N

Case 4

km = 3

Case 5

km = 3.23

Case 6

km = 3.04

Case 7

km = 2.88

Case 8

km = 2.72

Case 9

km = 2.56

Case 10 To 11

km = 2.42

Case 11 To 14

km = 2.24

Case 14 To 18

km = 1.99

Case 18 To 23

km = 1.84

Case 23 To 28

km = 1.71

Case 28 To 35

km = 1.62

Case 35 To 45

km = 1.5

Case 45 To 55

km = 1.4

Case 55 To 80

km = 1.32

Case 80 To 120

km = 1.21

Case 120 To 180

km = 1.17

Case 180 To 200

km = 1.15

Case Is > 200

km = 1

End Select

End If

..

..

If >= 0.75 And < 0.85 Then

Select Case N

Case 4

km = 1.14

Case 5

km = 1.12

Case 6

km = 1.1

Case 7

km = 1.09

Case 8

km = 1.08

Case 9

km = 1.08

Case 10 To 11

km = 1.07

Case 11 To 14

km = 1.07

Case 14 To 18

km = 1.07

Case 18 To 23

km = 1.06

Case 23 To 28

km = 1.06

Case 28 To 35

km = 1.05

Case 35 To 45

km = 1.05

Case 45 To 55

km = 1.04

Case 55 To 80

km = 1.03

Case 80 To 120

km = 1.02

Case 120 To 180

km = 1.02

Case 180 To 200

km = 1.01

Case Is > 200

km = 1

End Select

End If

 

If >= 0.85 And <= 0.9 Then

km = 1

End If

= km

End Function

 

.

3) P1 1 C7:C16 ( )

 

P1 2

C7:C16, ,

 

 

Public Function P1( As Range)

Dim Cell As Object

Dim m As Double, N As Double

 

m = 0

N = 0

For Each Cell In

If Cell.Value > m Then m = Cell.Value

Next Cell

For Each Cell In

If Cell.Value >= m / 2 Then N = N + Cell.Value

Next Cell

P1 = N

End Function

 

.

 

For Each ( ), . VB .

 

For Each In

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

Exit For

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

Next

 

Cell .

 

4) N1 n1

 

n1 (. 2). . . Offset.

 

 

Public Function N1(1 As Range)

Dim Cell1 As Object, w As Double, q As Double

w = 0

q = 0

For Each Cell1 In 1

If Cell1.Value > w Then w = Cell1.Value

Next Cell1

For Each Cell1 In 1

If Cell1.Value >= w / 2 Then q = q + Cell1.Offset(0, -1).Value

Next Cell1

N1 = q

End Function

 

Offset Cells, , . 1 , Cells. Offset .

4)

, .

.

 

Public Sub ()

Dim Cell1 As Object, Cell2 As Object

Dim Cell3 As Object, Cell4 As Object

For Each Cell1 In Range("A7:A16")

For Each Cell2 In Range("A30:A89")

If Cell1.Value = Cell2.Value Then

 
 


Cell1.Offset(0, 2).Value = Cell2.Offset(0, 1).Value

Cell1.Offset(0, 4).Value = Cell2.Offset(0, 2).Value

Cell1.Offset(0, 5).Value = Cell2.Offset(0, 3).Value

End If

Next Cell2

Next Cell1

 
 


For Each Cell3 In Range("A19:A23")

For Each Cell4 In Range("A30:A89")

If Cell3.Value = Cell4.Value Then

Cell3.Offset(0, 2).Value = Cell4.Offset(0, 1).Value

Cell3.Offset(0, 4).Value = Cell4.Offset(0, 2).Value

Cell3.Offset(0, 5).Value = Cell4.Offset(0, 3).Value

End If

Next Cell4

Next Cell3

End Sub

 





:


: 2015-10-06; !; : 690 |


:

:

.
==> ...

1620 - | 1561 -


© 2015-2024 lektsii.org - -

: 0.126 .