Hướng dẫn sử dụng VBA trong Excel

58 969 0
Hướng dẫn sử dụng VBA trong Excel

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hướng dẫn sử dụng VBA trong Excel. VBA là ngôn ngữ lập trình trong Excel: VBA Visual Basic for Application. Ta sử dụng ngôn ngữ lập trình VBA để viết ra các macro. Macro là các chương trình hoàn chỉnh thực hiện tự động các lệnh mà bạn đã viết ra cho nó.

8/18/2016 VBA TRONG EXCEL L p trình c b n excel PH M TU N MINH HTTP://DEV4LIFES.NET L I NÓI U L p trình ngày chi m v trí quan tr ng công vi c h ng ngày nh ng kh i ngành kinh t k thu t Nó giúp công vi c đ c bi t v i c đ n gi n nh nhàng h n, nh ng công vi c l p l p l i, nh ng công vi c nhàm chán c n đ c t đ ng hóa đ tránh sai sót gi m thi u r i ro Excel m t công c tính toán h t s c m nh m c a Microsoft, nh ng hàm s n có Excel r t l n, r t nhi u có l đ đ giúp x lý toán kinh t , k thu t nhiên thay vi t 10 dòng code có l ch c n vi t dòng code thôi, ch ng ph i t v i h n sao? VBA Excel giúp làm vi c đó, v i hàm API s n có c ng v i hàm API mà ch ng trình khác có th tích h p vào Excel nh ph n m m Etabs, Robot Structural Analyis xây d ng…giúp Excel chuyên nghi p ph bi n Cách s d ng VBA Excel t ng đ i đ n gi n, n u b n t ng có t v l p trình d dàng h n VBA có th s d ng mô hình h ng đ i t ng hi n đ i giúp dòng code s ch s d hi u Trong khuôn kh ebook này, tác gi ch mang đ n nhi u u đ n gi n nh t VBA Excel nh m giúp ng i đ c có cách nhìn dê dàng bao quát nh t h i – đáp v v n đ c th VBA m i b n s d ng hình th c sau: - G i email v đ a ch : dev4contact@gmail.com t câu h i trang web: http://askme.dev4lifes.net Chân thành c m n! VBA TRONG EXCEL | L p trình c b n excel M CL C T o Macro 1.1 Th Developer 1.2 Command Button 1.3 Gán m t Macro 1.4 Visual Basic Editor MsgBox 10 Workbooks Worksheets 12 3.1 Cây đ i t 3.2 Collection 12 3.3 Properties Method 13 it ng 12 ng Range 15 4.1 Ví d v Range 15 4.2 Cell 16 4.3 Khai báo đ i t 4.4 Select 17 4.5 Rows 17 4.6 Columns 18 4.7 Copy/Paste 18 4.8 Clear 19 4.9 Count 19 ng Range 17 Bi n 21 5.1 Integer 21 5.2 String 21 VBA TRONG EXCEL | L p trình c b n excel 5.3 Double 22 5.4 Boolean 23 Câu l nh If Then 23 6.1 Else 24 Vòng l p 25 7.1 Vòng l p đ n 25 7.2 Vòng l p đôi 25 7.3 Vòng l p ba 26 7.4 Vòng l p Do While 27 L i Macro 28 X lý String 31 9.1 Liên k t String 31 9.2 Left 32 9.3 Right 32 9.4 Mid 33 9.5 Len 33 9.6 Instr 34 10 Date Time 34 10.1 Year, Month, Day c a Date 34 10.2 DateAdd 35 10.3 Date Time hi n t i 35 10.4 Gi , phút, giây (Hour, Minute, Second) 36 10.5 TimeValue 36 11 Event (S ki n) 37 VBA TRONG EXCEL | L p trình c b n excel 11.1 S ki n Workbook Open 37 11.2 S ki n Worksheet Change 38 M ng 40 12 12.1 M ng m t chi u 40 12.2 M ng hai chi u 41 13 Function Sub 42 13.1 Function 42 13.2 Sub 43 it 14 ng Application 43 14.1 WorksheetFunction 43 14.2 ScreenUpdating 44 14.3 DisplayAlerts 45 14.4 Calculation 46 15 ActiveX Control 47 16 Userform 49 16.1 Thêm Control 50 16.2 Hi n th Userform 52 16.3 Gán Macro 54 16.4 Ki m tra 55 VBA TRONG EXCEL | L p trình c b n excel T o Macro V i Excel VBA b n có th t đ ng hóa công vi c Excel b ng cách vi t m t th g i macro Trong s h c cách đ t o m t macro đ n gi n đ th c hi n m t ch c n ng sau kích m t m t nút (button) u tiên ta ph i b t th menu Developer 1.1 Th Developer Th dành riêng cho b n mu n l p trình Excel, n u không c ng không c n quan tâm đ n làm c b t th này, th c hi n b c sauKích chu t ph i vào b t k đâu ribbon, sau kích vào Customize the Ribbon Tích ch n vào ô Developer VBA TRONG EXCEL | L p trình c b n excel Kích OK B n s th y tab developer g n tab view 1.2 Command Button đ t m t nút b ng Excel (WorkSheet) c a b n, th c hi n b c sau: Trên Tab Developer, kích vào nút Insert VBA TRONG EXCEL | L p trình c b n excel Trong khu v c ActiveX, kích vào Command Button Kéo th nút vào worksheet c a b n 1.3 Gán m t Macro gán m t Macro cho nút trên, th c hi n b c sau Kích chu t ph i vào CommandButton1 ( ch c ch n Design Mode ch n) Kích vào View Code VBA TRONG EXCEL | L p trình c b n excel Trình t Visual Basic Editor xu t hi n t tr chu t gi a dòng Private Sub CommandButton1_Click() End Sub Thêm dòng code sau vào VBA TRONG EXCEL | L p trình c b n excel Chú ý: C a s bên trái v i tên Sheet1, Sheet2 Sheet3 đ c g i Project Explorer N u c a s không hi n ra, b n ch n View > Project Explorer thêm c a s code sheet đ u tiên, kích vào Sheet1 óng khung Visual Basic Editor Kích vào command button sheet c a b n S th y k t qu nh sau: Chúc m ng b n t o macro Excel B n đ ng quan tâm t i dòng code v i, s nói sau 1.4 Visual Basic Editor m Visual Basic Editor, th Developer, kích vào Visual Basic VBA TRONG EXCEL | L p trình c b n excel 43 13.2 Sub N u b n mu n Excel VBA đ th c hi n m t s hành đ ng, b n có th s d ng sub m t sub m t module: t Sub Area(x As Double, y As Double) MsgBox x * y End Sub t m t command button b ng tính thêm dòng code sau: Area 3, K t qu : B n có th th y s khác gi a function sub ch ???? Đ it ng Application ng Application cha c a t t c đ i t ng Excel 14.1 WorksheetFunction VBA TRONG EXCEL | L p trình c b n excel 44 B n có th s d ng WorksheetFunction Excel VBA đ tr đ n ch c n ng Excel Ví d , đ t m t command button b ng tính thêm dòng code sau Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2")) Khi b n kích vào command button b ng tinh Excel VBA tính toán giá tr trung bình c a ô A1 A2, sau đ t k t qu vào ô A3 Chú ý: Thay s d ng Application.WorksheetFunction.Average, ch c n s d ng WorksheetFunction.Average N u b n nhìn vào công th c, b n có th th y r ng b n thân công th c không hi n th ô A3 thêm công th c vào ô s d ng dòng code sau: Range("A3").Value = "=AVERAGE(A1:A2)" 14.2 ScreenUpdating ôi b n có th vô hi u hóa trình c p nh t tính toán hình th c hi n code, u s giúp code ch y nhanh h n Ví d , đ t m t command button b ng tính thêm nh ng dòng code sau Dim i As Integer For i = To 10000 Range("A1").Value = i Next i Khi b n kích vào command button b ng tính, Excel VBA s tính toán m t vài giây VBA TRONG EXCEL | L p trình c b n excel 45 t ng t c, s a code nh sau: Dim i As Integer Application.ScreenUpdating = False For i = To 10000 Range("A1").Value = i Next i Application.ScreenUpdating = True K t qu code s chay nhanh h n b n s ch nhìn th y k t qu 10000 14.3 DisplayAlerts B n có th ch d n Excel VBA không hi n th c nh báo ch y code Ví d đ t m t command button b ng tính thêm nh ng dòng code sau ActiveWorkbook.Close Khi b n kích vào command button b ng tính, Excel VBA s đóng file Excel h i b n có l u hay không ch d n không hi n th b ng thông báo ch y code, s a code nh sau: Application.DisplayAlerts = False VBA TRONG EXCEL | L p trình c b n excel 46 ActiveWorkbook.Close Application.DisplayAlerts = True 14.4 Calculation M c đ nh, s tính toán đ c đ t t đ ng N u workbook c a b n bao g m nhi u công th c ph c t p, b n có th t ng t c macro c a b n b ng cách s d ng tính toán b ng tay t đo n code sau vào command button Application.Calculation = xlCalculationManual Khi b n kích vào nút này, Excel VBA s cài đ t s tính toán b ng excel b ng tay B n có th xác nh n u b ng kích ch n File > Option > Formulas VBA TRONG EXCEL | L p trình c b n excel 47 Bây gi b n thay đ i giá tr ô A1, giá tr ô B1 không đ c tính l i b n có th tính l i b ng cách n F9 Trong h u h t tr code ng h p, b n s cài đ t s tính toán đ t đ ng tính l i cu i đo n n gi n thêm dòng code sau: Application.Calculation = xlCalculationAutomatic ActiveX Control Bài s h c cách t o ActiveX control nh command button, text box, list box, v v t o m t ActiveX control VBA, làm nh ng b c sau Trên menu Developer, kích Insert Ví d , khu v c ActiveX control, kích vào Command Button đ thêm m t nút VBA TRONG EXCEL | L p trình c b n excel 48 Kéo nút vào b ng tính Kích chu t ph i vào command button Kích View Code Chú ý: B n có th thay đ i tiêu đ tên c a control b ng kích chu t ph i vào control ch n properties Thêm dòng code bên d i vào gi a Private Sub End Sub VBA TRONG EXCEL | L p trình c b n excel 49 Ch n ô B2:B4 kích vào command button K t qu : Userform Bài d y b n cách t o m t giao di n ng i dùng Excel VBA Nó trông nh sau: VBA TRONG EXCEL | L p trình c b n excel 50 16.1 Thêm Control thêm control làm nh ng b c sau: M Visual Basic Editor N u Project Exporer không xu t hi n, kích vào View > Project Explorer Kích Insert > Userform N u Toolbox không xu t hi n t đ ng, kích View > Toolbox Màn hình c a b n trông nh bên d i: VBA TRONG EXCEL | L p trình c b n excel 51 Thêm nh ng control nh b ng bên d i li t kê Khi hoàn thành, k t qu gi ng nh hình đ u tiên c a Ví d , t o m t text box b ng cách kích vào TextBox t Toolbox, k đ n b n kéo text box vào Userform … Thay đ i tên tiêu đ c a control nh b ng bên d i Tên (Name) đ c s d ng code Excel VBA Caption xu t hi n hình VBA TRONG EXCEL | L p trình c b n excel 52 16.2 Hi n th Userform hi n th Userform, đ t m t command button b ng tính thêm nh ng dòng code sau: Private Sub CommandButton1_Click() DinnerPlannerUserForm.Show End Sub VBA TRONG EXCEL | L p trình c b n excel 53 Chúng ta s t o m t Sub UserForm_Initialize Khi b n s d ng ph Userform, sub s t đ ng đ ng th c Show c a cg i M Visual basic editor Trong Project Explorer, kích chu t ph i vào DinnerPlannerUsserForm kích vào View Code Ch n Userform t danh sách bên trái ch n Initialize danh sách bên ph i Thêm dòng code sau: Private Sub UserForm_Initialize() 'Empty NameTextBox NameTextBox.Value = "" 'Empty PhoneTextBox PhoneTextBox.Value = "" 'Empty CityListBox 10 CityListBox.Clear 11 12 'Fill CityListBox 13 With CityListBox 14 AddItem "San Francisco" 15 AddItem "Oakland" 16 AddItem "Richmond" 17 End With 18 19 'Empty DinnerComboBox 20 DinnerComboBox.Clear 21 22 'Fill DinnerComboBox 23 With DinnerComboBox 24 AddItem "Italian" 25 AddItem "Chinese" 26 AddItem "Frites and Meat" 27 End With 28 29 'Uncheck DataCheckBoxes 30 DateCheckBox1.Value = False 31 DateCheckBox2.Value = False 32 DateCheckBox3.Value = False VBA TRONG EXCEL | L p trình c b n excel 54 33 34 'Set no car as default 35 CarOptionButton2.Value = True 36 37 'Empty MoneyTextBox 38 MoneyTextBox.Value = "" 39 40 'Set Focus on NameTextBox 41 NameTextBox.SetFocus 42 43 End Sub 16.3 Gán Macro Chúng ta t o ph n đ u tiên c a Userform Ti p theo làm nh sau M Visual Basic Editor Trong Project Explorer, kích đúp vào DinnerPlannerUserForm Kích đúp vào nút Money spin Thêm nh ng dòng code sau: Private Sub MoneySpinButton_Change() MoneyTextBox.Text = MoneySpinButton.Value End Sub Kích đúp vào nút OK Add nh ng dòng code sau: Private Sub OKButton_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 'Transfer information 10 Cells(emptyRow, 1).Value = NameTextBox.Value Cells(emptyRow, 2).Value = PhoneTextBox.Value VBA TRONG EXCEL | L p trình c b n excel 55 11 Cells(emptyRow, 3).Value = CityListBox.Value 12 Cells(emptyRow, 4).Value = DinnerComboBox.Value 13 If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption 14 15 If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & 16 DateCheckBox2.Caption 17 If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & 18 DateCheckBox3.Caption 19 20 If CarOptionButton1.Value = True Then 21 Cells(emptyRow, 6).Value = "Yes" 22 Else Cells(emptyRow, 6).Value = "No" 23 End If 24 25 Cells(emptyRow, 7).Value = MoneyTextBox.Value 26 27 End Sub Gi i thích: u tiên, active Sheet1, k đ n kh i t o bi n emptyRow Bi n emptyRow dòng tr ng đ u tiên t ng m i l n m t b n ghi đ c b sung Cu i cùng, truy n thông tin t Userform đ c t c a emptyRow Kích đúp vào nút Clear Thêm code sau: Private Sub ClearButton_Click() Call UserForm_Initialize End Sub Kích đúp vào nút Cancel 10 Thêm code sau: Private Sub CancelButton_Click() Unload Me End Sub 16.4 Ki m tra VBA TRONG EXCEL | L p trình c b n excel 56 Thoát Visual Basic Editor, nh p nh ng text sau vào dòng ki m tra K t qu : VBA TRONG EXCEL | L p trình c b n excel 57 K t lu n Ebook trình bày nh ng v n đ then ch t c a VBA Excel Chi ti t h n ng i đ c ph i th c hành nhi u đ có nh ng k n ng, ph n x s a l i Trong l p trình không ph i ch ng i đ c có th gi i mà ph i t th c hành code r t nhi u Cu n VBA nâng cao th i gian t i s sâu h n vào v n đ chi ti t, c ng nh v n đ nâng cao Ebook nhi u l i, có th ch a làm hài lòng ng i đ c nên r t mong nh n đ c ý ki n đóng góp chân thành đ tác gi hoàn thi n h n M t l n n a, xin chân thành c m n! VBA TRONG EXCEL | L p trình c b n excel

Ngày đăng: 05/10/2016, 09:28

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan