1 of 9 7/20/2007 12:02 PM
#21
Trang chủ Nội Quy Ghi Danh Thành Viên Thư viện Bài Trong Ngày
Tìm Kiếm
Giải Pháp Excel > Góc học tập > Học tập Online
Kiến thức cơ bản về Visual Basic for Applications (VBA)
Ký danh
Ghi Nhớ?
Mật mã
Ðăng Nhập
Trang 3/4 <123 4>
Ðiều Chỉnh Kiếm Trong Bài
10-12-06, 04:11 PM
PhanTuHuong
6th Excel Member
Tham gia ngày: 06 2006
Nơi Cư Ngụ: Hà Nội
Bài gởi: 1,060
Thanks: 86
Thanked 366 Times in 204 Posts
11.2. Phương thức InputBox (Inputbox Method)
Nhằm thể hiện hộp thoại để người sử dụng nhập dữ liệu vào.
Khi sử dụng phương thức này, một hộp thoại sẽ cho hiện ra để bạn vào dữ liệu, chờ cho người dùng nhập
dữ liệu vào hoặc là bấm vào nút OK hoặc Cancel, giá trị nhận được được coi là chuỗi (string). Đây là một
cách để vào giá trị đơn lẻ hoặc đị
a chỉ của các ô trong quá trình chạy macro. Bạn không thể gán được lệnh
khi chọn nút OK hay Cancel như trong MsgBox. Đó chính là hạn chế của hàm này nên ít được ứng dụng
khi đầu vào nhiều số liệu.
Dim Cot, Hang As Integer
Set Mang = Application.InputBox("Vao mang:", "Linh tinh", Type:=8)
Cot = Dangmang.Columns.Count ‘ Tính số cột chọn
Hàng = Dangmang.Rows.Count ‘ Tính số hàng chọn
MsgBox "So cot la: " & Cot
MsgBox "So hang la: " & Hang
MsgBox "Dia chi o dau la: " & Dangmang.Cells(1, 1).Address
MsgBox "Dia chi o cuoi la: " & Dangmang.Cells(Cot, Hang).Address
‘ Address là thông tin địa chỉ ô
End Sub
Kết quả vào dữ liệu là mảng dưới đây. Ngoài ra bạn còn thu được một số thông tin về mảng đó như số
hàng, số cột, địa chỉ ô,
Hình 43: Ví dụ về sử dụng InputBox
thay đổi nội dung bởi: levanduyet, 25-12-06 lúc 08:54 PM.
3 of 9 7/20/2007 12:02 PM
#22
The Following 2 Users Say Thank You to PhanTuHuong For This Useful Post:
MrHieu, NEO
19-12-06, 08:02 PM
PhanTuHuong
6th Excel Member
Tham gia ngày: 06 2006
Nơi Cư Ngụ: Hà Nội
Bài gởi: 1,060
Thanks: 86
Thanked 366 Times in 204 Posts
12. Hành động lặp (Loop)
Hành động lặp cho phép bạn thực hiện một đoạn chương trình nhiều lần. Chức năng này hết sức có ý
nghĩa khi bạn xử lý các đối tượng là mảng. Bạn có thể điều khiển hành động lặp theo quy định đặt ra. Có
Do While i <= 10 ‘ Đặt giới hạn cho i, nếu False thì thoát
4 of 9 7/20/2007 12:02 PM
Cells(i,1) = i ‘ Gán i vào ô
i = i + 1 ‘ Cho giá trị i tăng dần
MsgBox i ‘ Hộp thông báo giá trị i
Loop ‘ Tiếp tục lặp
End Sub
12.3. Do Loop While
Tương tự như Do While Loop, thực hiện khối lệnh khi điều kiện True. Hành động sẽ lặp với điều kiện
True, cho đến khi điều kiện False thì sẽ thoát ra. Mẫu tổng quát:
Trích:
Do
<khối lệnh>
Loop While <điều kiện>
Ví dụ:
Trích:
Sub VD_Do_LoopW()
i = 1
Do
Cells(i,3) = i
i = i + 1
Msgbox i
Loop While i <= 10
End Sub
12.4. Do Until Loop
Bạn có thể thực hiện các khối lệnh từ đầu vòng lặp cho đến khi điều kiện vẫn True. Đến khi điều kiện
False thì sẽ thoát ra. Phương thức này giống như vòng lặp For Next. Mẫu tổng quát:
Trích:
Do Until <điều kiện>
<khối lệnh>
Ví dụ 2: Dùng Step
Sub VD_ForNext_Step()
For i = 1 To 7 Step 2
Cells(12, i) = i
MsgBox i
Next
End Sub
Trong ví dụ này, giá trị i tăng từng bước 1, 3, 5, 7.
12.6. For Each Next
Tương tự như vòng lặp For Next, nhưng nó lặp khối lệnh theo số phần tử của một tập hợp đối tượng
hay một mảng, thay vì theo số lần lặp xác định. Vòng lặp này rất tiện lợi khi ta chưa biết chính xác bao
nhiêu phần tử trong tập hợp.
Trích:
For Each <phần tử> In <nhóm>
<khối lệnh>
Next <phần tử>
Để xác định tên và số lượng sheet trong workbook thì bạn dùng thủ tục sau:
Trích:
Sub ShowWorkSheets()
Dim mySheet As Worksheet
Dim i As Integer : i = 1
For Each mySheet In Worksheets
6 of 9 7/20/2007 12:02 PM
MsgBox mySheet.Name
i = i + 1
Next mySheet
MsgBox "So sheet trong workbook la " & i
End Sub
12.7. Lệnh thoát (Exit)
Trong một số trường hợp, bạn có thể thoát khỏi công việc nào đó khi đã thoả mãn yêu cầu công việc. Bạn
Kết quả thể hiện ở hình vẽ dưới đây:
7 of 9 7/20/2007 12:02 PM
#23
#
24
Hình 44: Sản phẩm tạo ra khi dùng vòng lặp lồng.
thay đổi nội dung bởi: PhanTuHuong, 19-12-06 lúc 10:32 PM.
24-12-06, 10:21 PM
levanduyet
Thành viên CFC
Tham gia ngày: 05 2006
Bài gởi: 341
Thanks: 17
Thanked 146 Times in 78 Posts
Khai báo biến cho cột (Col) và hàng (Row)
Xin các bạn cũng chú ý cho khi khai báo biến
Code:
thì ở đây chúng ta hiểu là x là biến kiểu Variant và y mới là kiểu Integer.
Trong Excel 2003 (Vì bây giờ đã có Excel 2007!) thì biến kiểu integer dùng 2 bytes. Tức là từ -32,768 đến
32,767. Còn số hàng trong Excel 2003 là 65,536. Số cột trong Excel 2003 là 256. Vì vậy khi khai báo biến
cho hàng, để tránh lỗi đáng tiếc xãy ra thì nên khai báo là kiểu Long, 4 bytes, -2,147,483,648 đến
2,147,483,647.
Lê Văn Duyệt
__________________
_-*-_-*-_-*-_-*-_-*-_-*-_-*-_
* Know everything you can *
* about what you're doing *
_-*-_-*-_-*-_-*-_-*-_-*-_-*-_
/>
* about what you're doing *
_-*-_-*-_-*-_-*-_-*-_-*-_-*-_
/>
10-01-07, 11:14 AM
minhanhsfr
Excel Member
Tham gia ngày: 01 2007
Bài gởi: 3
Thanks: 0
Thanked 2 Times in 2 Posts
Bài viết thật tuyệt vời!
Cảm ơn PhanTuHUong Với LeVanDuyet nhiều. Mong sao bài giảng được tiếp tục.
The Following User Says Thank You to minhanhsfr For This Useful Post:
tanhhm
02-02-07, 01:35 PM
huuthien_acc
Excel Member
Tham gia ngày: 01 2007
Bài gởi: 8
Thanks: 1
Thanked 0 Times in 0 Posts
Cám ơn các bạn nhiều nhé, đọc bài này của các bạn mình thấy macro cũng khá dễ sử dụng. Mình đang
tập ứng dụng macro nên mình rất thích bài này của các bạn. Chúc các bạn sức khỏe và may mắn!
28-02-07, 12:03 PM
phontran
Excel Member
Tham gia ngày: 02 2007
Bài gởi: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Đọc bài viết của hai huynh PhanTu Huong Với Le Van Duyet thay that hay, đệ thấy excel va Cad la hai
công cụ tốt cho ai hoc Kỹ thuật, đệ muốn học VBA của excel và Cad , ở HCm có dịa chỉ nao không, và giá
thế nào????
Trang 3/4 <123 4>
« Ðề Tài Trước | Ðề Tài Kế »
Ðang đọc: 2 (0 thành viên và 2 khách)
Quyền Sử Dụng Ở Diễn Ðàn
Bạn không được quyền gởi bài
Bạn không được quyền gởi trả lời
Bạn không được quyền gởi kèm file
Bạn không được quyền sửa bài
vB code đang Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Chuyển đến
Học tập Online
Học tập Online Tiếp Tục
Similar Threads
Ðề tài Người Gởi Chuyên mụcTrả lời Bài mới gởi
Viết phần mềm đánh lô bằng Visual Basic longg75 Chơi Game với Excel 23 Hôm qua 10:58 AM
Lịch sử Visual Basic Secret_grasses Lập Trình với Excel 3 01-09-06 09:58 PM
Một số mẹo hay trong Visual Basic PhanTuHuong Tài Nguyên Mạng 0 22-08-06 03:07 PM
Visual Basic 2005 trên cả tuyệt vời levanduyet Bổ sung kiến thức Visual Basic 9 18-08-06 06:15 PM