. VBA. , . , .
3 :
Type
As String
As Date
As Integer
End Type
Sub ()
Dim User1 As
User1. = ""
User1. = #2/23/75#
User1. = Year(Date) - Year(User1.)
MsgBox User1. & ", " & User1. & _
" " & User1.
End Sub
Date, Year, . , Date, ( ), Date.
:
1. 3 _, , , (..., , , ). Excel C:\St\.xls :
1.1. InputBox:
:
...:
1.2. MsgBox :
1.3. , , , .
1.4. , : , , .
VBA ; . , , , . , .
. , . , , . - Variant, .
VBA 0 1. Option Base . , Option Base 0 0, a Option Base 1 1. Option Base 0. , 1.
|
|
4 :
1. ( Option Base 1 ):
Option Base 1
Sub ()
Dim Vals(3) As Integer
Vals(1) = Int(100 * Rnd())
Vals(2) = Int(100 * Rnd())
Vals(3) = Int(100 * Rnd())
MsgBox " : " & Vals(1) & ", " & _
Vals(2) & ", " & Vals(3)
End Sub
2. , Variant, :
Sub Variant()
Dim Data(3) As Variant
Data(1) = ""
Data(2) = #3/21/1947#
Data(3) = Year(Date) - Year(Data(2))
MsgBox Data(1) & ", " & Data(3) & ", " _
& Data(2)
End Sub
3. , :
Sub ()
Dim Data4(4 To 5) As Integer
Data4(4) = lnt(100 * Rnd())
Data4(5) = Int(100 * Rnd())
MsgBox " : " & Data4(4) & ", " _
& Data4(5)
End Sub
4. , , , .
Sub ()
Dim Data5() As Variant
Dim As Integer
' Data5 _
:
ReDim Data5(2)
Data5(1) = Int(100 * Rnd())
Data5(2) = Int(100 * Rnd())
MsgBox " : " & Data5(1) & ", " _ & Data5(2)
= Int(InputBox(" :", _
""))
' Data5 :
ReDim Data5(,3)
Data5(1,1) = ""
Data5(1,2) = #3/21/1947#
Data5(1,3) = Year(Date)-Year(Data5(1,2))
MsgBox " " & & " !"
MsgBox "1- : " & Data5(1,1) & ", : " & _
Data5(1,3) & ", : " & Data5(1,2)
End Sub
5. .
() Excel C:\St\.xls, (. 4‑1). . .
. 4‑1.
: (, ..., ), .
1) | Sub _() |
2) | Dim () As String |
3) | DimAs Integer |
4) | DimAs Integer |
5) | = 0 |
6) | = 3 |
7) | ' : |
8) | While Cells(,2).Value <> "" |
9) | If Cells(,3).Value = "" Then |
10) | = + 1 |
11) | ReDim Preserve (3,) |
12) | (1,) = Cells(,1).Value |
13) | (2,) = Cells(,2).Value |
14) | (3,) = Cells(,3).Value |
15) | End If |
16) | = + 1 |
17) | Wend |
18) | ' _ : |
19) | WorkBooks.Add |
20) | For I = 1 To |
21) | Cells(I + 2,1).Value = (1, I) |
22) | Cells(I + 2,2).Value = (2, I) |
23) | Cells(I + 2,3).Value = (3, I) |
24) | Next I |
25) | Range("A1").Select |
26) | MsgBox " !", vbInformation |
27) | End Sub |
10- , , 1 ( 11). . Preserve , .
|
|
: Preserve, . , :
ReDim Preserve (, 3)
!
: , .xls. , , , ( 4).
1) | Sub __() |
2) | Dim () As String |
3) | DimAs Integer |
4) | DimAs Integer |
5) | Dimflag As Integer |
6) | ' C:\St\.xls |
7) | If Dir("C:\St\.xls") = "" Then |
8) | MsgBox " C:\St\.xls !", _ |
9) | vbInformation |
10) | Exit Sub |
11) | End If |
12) | ' , .xls: |
13) | For I = 1 To Workbooks.Count |
14) | If Workbooks(I).Name = ".xls" Then |
15) | Workbooks(I).Activate |
16) | flag = 1 |
17) | Exit For |
18) | End If |
19) | NextI |
20) | If flag = 0 ThenWorkbooks.Open Filename:= _ |
21) | "C:\St\.xls" |
22) | ' , : |
23) | flag = 0 |
24) | For I = 1 To Worksheets.Count |
25) | If Worksheets(I).Name = "" Then |
26) | flag = 1 |
27) | Exit For |
28) | End If |
29) | Next I |
30) | If flag = 1 Then |
31) | Sheets("").Select |
32) | Else |
33) | MsgBox " !", vbInformation |
34) | Exit Sub |
35) | End If |
36) | Sheets("").Select |
37) | = 0 |
38) | = 3 |
39) | ' : |
40) | While Cells(,2).Value <> "" |
41) | If Cells(,3).Value = "" Then |
42) | = + 1 |
43) | ReDim Preserve (3,) |
44) | (1,) = _ |
45) | Cells(,1).Value |
46) | (2,) = _ |
47) | Cells(,2).Value |
48) | (3,) = _ |
49) | Cells(,3).Value |
50) | End If |
51) | = + 1 |
52) | Wend |
53) | ' _ : |
54) | WorkBooks.Add |
55) | For I = 1 To |
56) | Cells(I + 2,1).Value = (1, I) |
57) | Cells(I + 2,2).Value = (2, I) |
58) | Cells(I + 2,3).Value = (3, I) |
59) | Next I |
60) | ' , _ |
61) | : |
62) | ' Call (, 3) |
63) | Range("A1").Select |
64) | MsgBox " !",vbInformation |
65) | End Sub |
:
|
|
1. 24 29 . 30 35 / .
2. 62 (. . 48).
Erase
, . , Erase , , , . Erase . Erase , .
Sub Erase()
Dim Data7(2) As Integer
Data7(1) = Int(100 * Rnd())
Data7(2) = Int(100 * Rnd())
MsgBox " : " & Data7(1) & ", " & Data7(2)
Erase Data7
MsgBox " : " & Data7(1) & ", " & Data7(2)
End Sub
. Erase. MsgBox , Data7 . Erase .
Sub Erase()
Dim Data8() As Integer
ReDim Data8(2)
Data8(1) = Int(100 * Rnd())
Data8(2) = Int(100 * Rnd())
MsgBox " : " & Data8(1) & ", " & Data8(2)
Erase Data8
MsgBox " : " & Data8(1) & ", " & Data8(2)
End Sub
Erase 8, Erase , . VBA Data8, .
LBound UBound
:
Sub Lbound_UBound()
Dim Data10(4 To 15) As Integer
MsgBox " " & LBound(Datal0) & "."
MsgBox " " & UBound(Datal0) & "."
End Sub
:
, ReDim, . , LBound UBound IsArray (. ).
5. . .
, .
VBA () , . :
, . , , .
VBA, , ; , .
, . .
5 :
1. DisplayMessage :
Sub ()
Dim Range1 As Range
Set Range1 = Worksheets(1).Range("A1")
Range1.Value = 500
DisplayMessage
End Sub
Sub DisplayMessage()
|
|
MsgBox " !"
End Sub
2. , ( 3):
Sub ()
Dim Range1 As Range
Set Range1 = Worksheets(1).Range("A1")
Range1.Value = 500
3.DisplayMessage
End Sub
Sub DisplayMessage()
MsgBox " !"
End Sub
.
: . :
19) | Sub () |
20) | Dim As Integer |
21) | Dim As String |
22) | = Application.SheetsInNewWorkbook |
23) | Application.SheetsInNewWorkbook = 1 |
24) | Workbooks.Add |
25) | ActiveSheet.Name = ". " |
26) | For i = 1 To 10 |
27) | = Int(100 * Rnd()) |
28) | Cells(i, 1).Value = |
29) | Next i |
30) | ' : |
31) | |
32) | Sheets.Add After:=Worksheets(Worksheets.Count) |
33) | Worksheets(1).Select |
34) | Range("A1").Select |
35) | Application.SheetsInNewWorkbook = |
36) | ActiveWorkbook.SaveAs Filename:="C:\St\ .xls" |
37) | MsgBox " !" |
38) | End Sub |
.
:
. , 31- :
Call