Sunday, April 7, 2019

Dạy học Excel Macros Phần 2: VBA (Macro) Từ vựng

Trong phần đầu tiên bạn đã khám phá ra Visual Basic Editor và Macro Recorder. Bạn đã học cách giao tiếp với Excel và cách kiểm tra thủ tục VBA của bạn (Macro). 

Trong phần thứ hai này, bạn sẽ khám phá ra ngôn ngữ lập trình: VBA hoặc Visual Basic cho ứng dụng. Bạn sẽ học từ vựng để hỏi bất cứ điều gì từ Excel. Sau phần 2, bạn sẽ có thể phát triển các macro nhỏ và hữu ích và thậm chí cả các chương trình rất phức tạp.

Mẹo mã hóa VBA

Khi bạn bắt đầu lắp ráp các từ VBA vào các câu và các đoạn văn, người ta nói rằng bạn đang viết mã hoặc phát triển mã VBA. Trong bài học này, bạn sẽ tìm hiểu các mẹo viết mã quan trọng và nhiều từ VBA đặc biệt. Dưới đây là một mẹo và một bài tập sẽ cung cấp cho bạn một ý tưởng về những gì bạn sẽ tìm thấy trong chương 11 của Hướng dẫn có thể tải xuống trên Excel Macros.

Mẹo mã hóa 1
Luôn luôn nhập mã của bạn trong các chữ thường. Nếu chính tả là đúng, các chữ cái cần thiết sẽ được viết hoa. Nếu không có thư nào được viết hoa .... hãy kiểm tra chính tả của bạn.
Tập thể dục 1-1
Bước 1: Mở sổ làm việc mới trong Excel và sử dụng phím ALT / F11 để đi tới trình chỉnh sửa cơ bản trực quan.
Bước 2: Trong cửa sổ mã của bất kỳ trang tính nào sao chép / dán macro sau:
Sub proTest ()
   activecel.cop
Kết thúc phụ
Lưu ý rằng không có chữ in hoa nào trong activecel.cop vì cả hai từ đều sai chính tả.
Bước 3:  Thêm "l" vào "activecell" thứ hai và "y" để "sao chép" và sau đó nhấp "Enter". Câu bây giờ đọc: Activecell.Copy với một vốn "A" và một vốn "C" vì cả hai từ được viết đúng chính tả.
Bây giờ bạn hiểu rằng các chữ cái quan trọng được viết hoa trong mỗi từ VBA được viết đúng chính tả khi bạn di chuyển ra khỏi dòng.
Bước 5: Đóng Excel mà không lưu bất kỳ thứ gì

Quản lý lỗi mã hóa VBA

Trình soạn thảo Visual Basic sẽ giúp bạn tránh các lỗi khi mã hóa theo nhiều cách khác nhau. Bạn sẽ không phải chờ ở cuối để được thông báo rằng có điều gì đó sai với macro của bạn.

Lỗi chính tả
Bạn đã thấy trong bài 11 VBE viết hoa các chữ cái để cho bạn biết rằng không có lỗi chính tả.

Lỗi cú pháp
VBE cũng sẽ cho bạn biết rằng có một lỗi cú pháp trong những gì bạn vừa viết bằng cách làm cho phông chữ màu đỏ và hiển thị cho bạn một hộp thư.
Bài tập 1
Bước 1: Mở một sổ làm việc mới trong Excel và sử dụng các phím ALT / F11 để đi đến trình soạn thảo cơ bản trực quan (VBE).
Bước 2: Trong cửa sổ mã  của bất kỳ bảng sao chép / dán dòng mã sau đây: Phạm vi (A1 "). Chọn và bấm" Enter ".
Bạn nhận được hộp thông báo sau cho bạn biết rằng bạn đang thiếu "bộ tách danh sách". Tìm lỗi trước khi phân đoạn được đánh dấu bằng màu xanh dương. Chúng ta có thể suy luận rằng VBA đang nói về dấu ngoặc kép còn thiếu.
zi-vba-syntax-error
Bước 3:  Nhấp vào nút "OK".
Bước 4:  Thêm dấu ngoặc kép còn thiếu, sử dụng chuột để di chuyển con trỏ đến cuối câu và nhấp "Enter". Phông chữ màu đen có nghĩa là mọi thứ đều chính xác.
Bài tập 2
Bước 1: Trong cửa sổ mã  mà bạn đã sử dụng để thực hiện 1 sao chép / dán dòng mã sau đây: 
Phạm vi ("A1". Chọn
 và nhấp "Enter".
Bạn nhận được hộp thông báo sau cho bạn biết rằng bạn đang thiếu "bộ tách danh sách". Tìm lỗi trước khi phân đoạn được đánh dấu bằng màu xanh dương. Chúng ta có thể suy luận rằng VBE đang nói về dấu ngoặc đơn còn thiếu. Cả hai dấu ngoặc kép trong bài tập ở trên và dấu ngoặc đơn trong bài tập này được coi là "dấu tách danh sách" của VBE.
Bước 2:  Nhấp vào nút "OK".
Bước 3:  Thêm dấu ngoặc đơn còn thiếu, sử dụng chuột để di chuyển con trỏ đến cuối câu và nhấp "Enter". Phông chữ màu đen có nghĩa là mọi thứ đều chính xác.
Bước 4: Đóng Excel mà không lưu bất kỳ thứ gì

Có nhiều cách khác mà VBE sử dụng để cảnh báo bạn về các lỗi mã hóa. Bạn sẽ tìm hiểu về tất cả chúng trong hướng dẫn có thể tải xuống trên các macro Excel . Bạn cũng sẽ tìm hiểu cách sử dụng câu lệnh "If" để bắt lỗi trong quá trình thực thi và cách sử dụng câu lệnh OnError để tạo ra các thông báo lỗi thân thiện với người dùng như sau:
zi-vba-error

Mã VBA cho ứng dụng

Ứng dụng là đối tượng VBA, IT IS EXCEL. Ví dụ: Application.Quitsẽ đóng tất cả Excel lại với nhau.
Bài tập 1a
Bước 1: Mở một sổ làm việc mới trong Excel và sử dụng các phím ALT / F11 để đi đến trình soạn thảo cơ bản trực quan (VBE).
Bước 2: Sao chép macro sau trong cửa sổ mã  của bất kỳ trang tính nào. Như bạn có thể đọc, bạn đang yêu cầu Excel tự đóng.
Sub testLesson13a1 ()
    Application.Quit
Kết thúc phụ
Bước 3: Như bạn đã học trong bài 7, hãy vào Excel và chạy macro từ thanh trình đơn ( Excel trước 2007 ) hoặc ruy-băng ( Excel từ 2007 ).
Bước 4: Bạn sẽ được hỏi nếu bạn muốn lưu sổ làm việc. Trả lời "Không" và Excel sẽ tự đóng.
Bài tập 1b
Nếu bạn không muốn bị làm phiền bởi cảnh báo để lưu sổ làm việc của bạn, bạn sẽ thêm một dòng mã vào macro nhỏ: ActiveWorkbook.Saved = True
Bước 1: Mở một sổ làm việc mới trong Excel và sử dụng các phím ALT / F11 để đi đến trình soạn thảo cơ bản trực quan (VBE).
Bước 2: Sao chép macro sau trong cửa sổ mã  của bất kỳ trang tính nào. Như bạn có thể đọc, bạn đang yêu cầu Excel đóng chính nó nhưng trước hết nói rằng sổ làm việc đã được lưu.
Sub testLesson13a1 ()
    ActiveWorkbook.Saved = True Application.Quit
    
Kết thúc phụ
Bước 3: Chạy macro từ Excel như bạn đã làm với trước đó.
Excel sẽ tự đóng lại mà không hỏi bạn bất cứ điều gì.
Có một từ mà bạn có thể sử dụng với Ứng dụng sẽ vô hiệu hóa tất cả các cảnh báo mà Excel có thể gửi cho bạn. Khám phá từ này và nhiều từ khác mà bạn có thể sử dụng kết hợp với Ứng dụng trong khóa học có thể tải xuống trên các macro Excel

Có nhiều từ khác mà bạn có thể sử dụng kết hợp với Ứng dụng. Trong số đó, hai từ quan trọng là:
ScreenUpdating Application.ScreenUpdating )
Khi bạn không muốn nhìn thấy màn hình của bạn theo các hành động của thủ tục VBA của bạn (macro), bạn bắt đầu và kết thúc mã của bạn với các câu sau đây: 
Application.ScreenUpdating = FalseSau đó, ở cuối: 

Application.ScreenUpdating = Đúng
Tập thể dục
Bước 1: Mở một sổ làm việc mới trong Excel và sử dụng các phím ALT / F11 để đi đến trình soạn thảo cơ bản trực quan (VBE).
Bước 2: Sao chép macro sau trong cửa sổ mã  của bất kỳ trang tính nào. Như bạn có thể đọc: bắt đầu từ ô A1, giá trị "99" sẽ được nhập vào ô đã chọn rồi con trỏ sẽ di chuyển một ô xuống để nhập "99", lặp lại quy trình cho đến khi số hàng của ô được chọn là 3000 và trở lại ô A1.
Sub testLesson13b1 ()
    Phạm vi ("A1").
    Do Cho đến khi lựa chọn.Row = 3000 
        Selection.Value = 99 
        Selection.Offset (1, 0) .Chọn 
    vòng lặp
    Phạm vi ("A1").
Kết thúc phụ
Bước 3: Chạy macro từ Excel như bạn đã làm với trước đó.
Bước 4: Xóa tất cả "99" khỏi các ô
Bước 5: Sao chép macro sau trong cửa sổ mã của một sổ làm việc mới và chạy nó. Hai dòng mã đã được thêm vào macro trước đó để ngăn tất cả các bước của hành động được hiển thị trên màn hình.
Sub testLesson13b2 ()
    Application.ScreenUpdating = False
    Phạm vi ("A1").
    Do Cho đến khi lựa chọn.Row = 3000 
        Selection.Value = 99 
        Selection.Offset (1, 0) .Chọn 
    vòng lặp
    Phạm vi ("A1").
    Application.ScreenUpdating = True
Kết thúc phụ
Bước 6: Chạy macro từ Excel như bạn đã làm với trước đó. Bạn sẽ thấy một trang tính trống, không có chuyển động nào và sau đó một trang tính có các ô từ A1 đến A3000 bằng "99".
Đôi khi bạn hoặc người dùng có thể muốn xem hành động. Một số lần khác bạn hoặc người dùng không muốn thấy hành động. Bạn có thể sử dụng câu đó hay không.
Bạn thậm chí có thể sử dụng cặp câu (như dưới đây) bất cứ nơi nào trong một vĩ mô dài để làm mới màn hình tại các điểm quan trọng trong tiến trình. Với cặp câu bạn gọi cho một giải khát với Application.ScreenUpdating = True và sau đó làm gián đoạn quá trình làm mới cho đến khi làm mới tiếp theo với Application.ScreenUpdating = Fals e. Trước khi kết thúc macro, bạn sẽ sử dụng Application.ScreenUpdating = True .  
Hai câu làm mới: 
Application.ScreenUpdating = True 
Application.ScreenUpdating = False
Bước 7: Đóng sổ làm việc mà không lưu bất kỳ thứ gì

Mã VBA cho sách bài tập

Để phát triển một thủ tục VBA được kích hoạt bởi một sự kiện liên quan đến sổ làm việc (khi bạn mở nó, khi bạn lưu nó, khi bạn đóng nó) hãy xem bài học VBA về các sự kiện .
ThisWorkbook
ThisWorkbook là sổ làm việc trong đó quy trình VBA của bạn chạy. Vì vậy, nếu bạn viết: ThisWorkbook.SaveSổ làm việc trong đó quy trình VBA (macro) chạy của bạn sẽ được lưu.
Nếu bạn muốn đóng sổ làm việc trong đó thủ tục VBA (macro) của bạn chạy mà không lưu nó, bạn sẽ viết hai dòng mã sau: ThisWorkbook.Saved = True 
ThisWorkbook.Close
Xác minh sự tồn tại của một tập tin
Khi bạn muốn xác minh nếu một tập tin nhất định tồn tại trên đĩa của bạn, bạn sẽ sử dụng mã sau có nghĩa là "Nếu tập tin" C: \ Stuff \ toto.xls "không tồn tại sau đó": Nếu Dir ("C: \ Stuff \ toto.xls ") =" "Sau đó
Bạn cũng có thể sử dụng câu có nghĩa là "Nếu tệp" C: \ Stuff \ toto.xls "tồn tại sau đó": Nếu Dir ("C: \ Stuff \ toto.xls") <> "" Sau đó,
Nếu bạn đang tìm kiếm trong cùng thư mục với tệp mà macro chạy, bạn có thể đơn giản hóa mã VBA: 
Nếu Dir ("toto.xls") <> "" Sau đó,
Trong hướng dẫn có thể tải xuống trên các macro Excel, bạn sẽ tìm thấy nhiều cách sử dụng khác cho Dir bao gồm mở tất cả các tệp của một thư mục để tạo cơ sở dữ liệu tổng hợp (bất kể số lượng tệp trong thư mục). Bạn cũng sẽ tìm hiểu về Path , ActiveWorkbook , Windows , Kill và nhiều từ VBA khác để làm việc với một hoặc nhiều sổ làm việc.

Mã VBA cho bảng tính

Để phát triển một thủ tục VBA được kích hoạt bởi một sự kiện liên quan đến trang tính (khi bạn chọn nó, khi bạn rời khỏi nó ...) hãy xem bài học VBA về các sự kiện .
Trang tính
Bạn truy cập vào trang tính có tên "Số dư" với: Trang 
tính ("Số dư"). ChọnLưu ý rằng từ "Trang tính" là số nhiều và luôn sử dụng dấu ngoặc kép trong dấu ngoặc đơn
Bạn không thể chọn trang tính bị ẩn, vì vậy bạn sẽ cần phải viết: Trang 
tính ("Số dư"). Hiển thị = True 
Sheets ("Số dư"). Chọn
và sau đó nếu bạn muốn ẩn trang tính một lần nữa: Trang 
tính ("Số dư") .Visible = False
Tên của trang tính không được có nhiều hơn 31 ký tự và không được bao gồm các ký tự đặc biệt nhất định như "?: \ / []". Nếu bạn không tôn trọng các quy tắc này, thủ tục của bạn sẽ bị lỗi.
Các dòng mã sau đây sẽ tạo ra một thông báo lỗi: Sheets ("Sheet1"). Name = "Balance và Introduction to Numbers" bởi vì có hơn 31 ký tự bao gồm cả các khoảng trống ("Sheet1"). Name = "Balance: Giới thiệu " vì ký tự đặc biệt: Trang tính (" Sheet1 ") .Name =" " vì tên không được để trống
Bạn không thể đi trực tiếp từ một trang tính đến một ô trên một trang tính khác. Ví dụ: nếu trang tính hoạt động là "Số dư" và bạn muốn chuyển đến ô A1 của trang tính có tên "Kết quả", bạn không thể ghi: Trang tính ("Kết quả"). Phạm vi ("A1"). Chọn
Bạn phải thực hiện hai bước: 
Các trang tính ("Kết quả"). Chọn 
Phạm vi ("A1").

Mã VBA cho ô và phạm vi

Nhiều người mới bắt đầu bắt đầu sự nghiệp của mình bằng cách sử dụng Ô . Ví dụ: Ô (1.1) .Chọn phương tiện (hàng 1, cột 1) và giống với Phạm vi ("A1"). Chọn và 
Ô (14,31) .Chọn
 phương tiện (hàng 14, cột 31) và giống với Range ("AE14") .
Chúng tôi khuyên bạn nên sử dụng Phạm vi thay vì Ô để hoạt động với các ô và nhóm ô. Nó làm cho câu của bạn rõ ràng hơn và bạn không bị buộc phải nhớ rằng cột AE là cột 31.
Thời gian duy nhất mà bạn sẽ sử dụng các ô là khi bạn muốn chọn tất cả các ô của một trang tính. Ví dụ: Cells.Select Để chọn tất cả các ô và sau đó làm trống tất cả các ô của giá trị hoặc công thức bạn sẽ sử dụng: Cells.ClearContents


Phạm vi

Để chọn một ô bạn sẽ viết: Phạm vi ("A1").
Để chọn một tập hợp các ô liền nhau, bạn sẽ sử dụng dấu hai chấm và viết: Phạm vi ("A1: G5").
Để chọn một tập hợp các ô không tiếp giáp, bạn sẽ sử dụng dấu phẩy và viết: Phạm vi ("A1, A5, B4").
Để chọn một tập hợp các ô không kề nhau và một phạm vi, bạn sẽ sử dụng cả dấu hai chấm và dấu phẩy: Phạm vi ("A1, A5, B4: B8").

Bù lại

Các offset tài sản là một trong đó bạn sẽ sử dụng nhiều nhất với Phạm vi để di chuyển xung quanh bảng.
Để di chuyển một ô xuống (từ B2 đến B3): Phạm vi ("B2") Offset (1.0) .ChọnĐể di chuyển một ô sang phải (từ B2 đến C2): Phạm vi ("B2"). 0,1) .ChọnĐể di chuyển một ô lên (từ B2 đến B1): Phạm vi ("B2"). Offset (-1,0) .ChọnĐể di chuyển một ô sang trái (từ B2 đến A2): Phạm vi ( "B2"). Bù đắp (0, -1) .Chọn
Để di chuyển một ô xuống từ ô đã chọn: ActiveCell.Offset (1.0) .Chọn
Khi bạn nhận thấy đối số đầu tiên giữa các dấu ngoặc đơn cho Offset là số hàng và số thứ hai là số cột. Vì vậy, để di chuyển từ A1 đến G6, bạn sẽ cần: Phạm vi ("A1"). Offset (5,6) .Chọn
Bạn sẽ thường xuyên sử dụng đoạn mã sau đây. Nó chọn một ô PLUS 4 nhiều hơn ở bên phải để được sao chép / dán ở một nơi khác: Range (ActiveCell, ActiveCell.Offset (0,4)) Sao chép
Chú ý dấu phẩy sau 
ActiveCell đầu tiên và dấu ngoặc kép đóng trước Bản sao .

Mã VBA cho Hộp thư và Nhập liệu

Trong VBA cho Excel hộp thông báo (MsgBox) là công cụ chính để tương tác với người dùng. Ví dụ: bạn có thể muốn cho người dùng biết rằng một macro dài đã kết thúc chạy.
Bài tập 1
Bước 1: Mở một sổ làm việc mới và sử dụng các phím ALT / F11 để chuyển sang Trình chỉnh sửa Visual Basic.
Bước 2: Sao chép / Dán macro sau đây từ đây vào cửa sổ mã của bất kỳ trang tính nào.
     Sub proLessson17a () 
           Sheets ("Sheet1") Chọn 
           Range ("A1") Giá trị = 695 
           MsgBox "Macro đã chạy xong" 
    End Sub
 
Chú ý không gian sau MsgBox và sử dụng dấu ngoặc kép xung quanh văn bản
Bước 3: Sử dụng phím ALT / F11 để quay lại Excel và chạy macro proLessson17a .
Giá trị 695 được nhập vào ô A1 và hộp thông báo sau xuất hiện.
zi-vba-message-box-1
Bước 4: Xóa macro trong Trình chỉnh sửa Visual Basic và giá trị 695 từ ô A1
Bài tập 2
Bạn có thể muốn nói cho người dùng biết anh ta sẽ tìm thấy kết quả ở đâu.
Bước 1: Sử dụng các phím ALT / F11 để chuyển sang Trình chỉnh sửa Visual Basic.
Bước 2: Sao chép / Dán macro sau đây từ đây vào cửa sổ mã của bất kỳ trang tính nào.
     Sub proLessson17b () 
           Sheets ("Sheet1") Chọn 
           Phạm vi ("A1") Giá trị = 695 

           MsgBox "Kết quả là trong ô" "A1" "" 
    End Sub
 
Chú ý không gian theo MsgBox, việc sử dụng dấu ngoặc kép xung quanh văn bản và các dấu ngoặc kép kép xung quanh A1 vì chúng ta muốn địa chỉ hiển thị trên hộp thông báo giữa các dấu ngoặc kép.
Bước 3: Sử dụng phím ALT / F11 để quay lại Excel và chạy macro proLessson17b .
Giá trị 695 được nhập vào ô A1 và hộp thông báo sau xuất hiện
zi-vba-message-box-2
Bước 4: Xóa macro trong Trình chỉnh sửa Visual Basic và giá trị 695 từ ô A1
Bài tập 3
Thay vì nói với người dùng rằng giá trị nằm trong ô A1, bạn có thể muốn cho anh biết kết quả là gì trong hộp thư.
Bước 1: Sử dụng các phím ALT / F11 để chuyển sang Trình chỉnh sửa Visual Basic.
Bước 2: Sao chép / Dán macro sau đây từ đây vào cửa sổ mã của bất kỳ trang tính nào.
     ProLessson17c Sub () 
           Sheets ( "Sheet1"). Select 
           Range ( "A1"). Value = 695 
MsgBox "Kết quả là" & Range ( "A1"). Value     End Sub
           

 
Lưu ý không gian sau MsgBox, việc sử dụng dấu ngoặc kép xung quanh văn bản, khoảng trống ở cuối văn bản và khoảng trắng xung quanh dấu và.
Bước 3: Sử dụng phím ALT / F11 để quay lại Excel và chạy macro proLessson17c .
Giá trị 695 được nhập vào ô A1 và hộp thông báo sau xuất hiện
zi-vba-message-box-3
Bước 4: Đóng Excel mà không lưu bất kỳ thứ gì.
Bạn có thể sử dụng hộp thông báo để thông báo cho người dùng. Bạn cũng có thể yêu cầu người dùng (với hộp Có / Không có tin nhắn) nếu anh ta chắc chắn rằng anh ta muốn một thủ tục quan trọng nhất định để chạy (xóa mọi thứ).
Có rất nhiều loại hộp thông báo (thông tin, cảnh báo, dấu chấm than hoặc câu hỏi.) Nếu bạn cần đầu vào từ người dùng, bạn sẽ bắt đầu sử dụng hộp nhập liệu.
Đối với hộp thông báo phức tạp hơn và hộp nhập liệu, hãy xem macro Hướng dẫn về Excel có thể tải xuống .

Mã VBA cho Cơ sở dữ liệu

Khi Excel nhận ra bạn thiết lập dữ liệu dưới dạng cơ sở dữ liệu, nó cung cấp cho bạn các chức năng cơ sở dữ liệu rất mạnh mẽ như sắp xếp và lọc.
Tắt bộ lọc
Khi bạn làm việc trong cơ sở dữ liệu Excel, bạn có thể muốn đảm bảo rằng tất cả các bộ lọc dữ liệu đều tắt. Để kết thúc này, bạn sẽ bắt đầu thủ tục của bạn với hai câu lệnh " If ". Ví dụ với một cơ sở dữ liệu bắt đầu từ ô A1 ở đây là hai câu:
Phạm vi ("A1") .Chọn 
           If ActiveSheet.AutoFilterMode = True Sau đó chọn.AutoFilter
           Nếu ActiveSheet.FilterMode = True thì ActiveSheet.ShowAllData
Sắp xếp dữ liệu
Đây là một macro Excel được đơn giản hóa để sắp xếp dữ liệu bằng cách sử dụng một tiêu chí trong một trường. Macro Excel sau sẽ làm việc với bất kỳ cơ sở dữ liệu kích thước nào bắt đầu trong ô A1 và nó sẽ hoạt động trong bất kỳ phiên bản Excel nào (1997 đến 2010).
Sub proFilter ()
Phạm vi ("A1"). Sắp xếp Key1: = Phạm vi ("A2"), Thứ tự 1: = xlTăng dần, Tiêu đề: = xlYes
Kết thúc phụ
Hãy thử macro Excel ở trên bằng một bảng nhỏ như sau (như bạn đã giới thiệu cách thực hiện bài tập cơ bản cho người mới bắt đầu):
TênCon số
Jones1
Tom2
Barry3
Peter4
Đây là một dữ liệu phân loại macro Excel được đơn giản hóa khác sử dụng tiêu chí trong ba trường khác nhau.
Sub proFilter ()
Phạm vi ("A1"). Sắp xếp Key1: = Phạm vi ("A2"), Thứ tự 1: = xl Tăng dần, Key2: = Phạm vi (_ 
        "B2"), Thứ tự 2: = xl Tăng dần, Key3: = Phạm vi ("C2"), Thứ tự 3 : = xl Tăng dần, _ 
        Tiêu đề: = xlYes
Kết thúc phụ
Mã trong hai thủ tục trên đơn giản hơn nhiều so với macro đã ghi sau trong Excel 2007 và 2010. Macro đã ghi này sẽ không hoạt động trong các phiên bản Excel trước (1997 đến 2006).
    ActiveWorkbook.Worksheets ("Sheet1"). Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets ("Sheet1"). Sort.SortFields.Add Key: = Phạm vi ("A2: A7"), _ 
        SortOn: = xlSortOnValues, Thứ tự: = xlA tăng dần , DataOption: = xlSortNormal 
    ActiveWorkbook.Worksheets ("Sheet1"). Sort.SortFields.Add Key: = Phạm vi ("B2: B7"), _ 
        SortOn: = xlSortOnValues, Thứ tự: = xlAscending, DataOption: = xlSortNormal 
    ActiveWorkbook.Worksheets ( "Sheet1"). Sort.SortFields.Add Key: = Phạm vi ("C2: C7"), _ 
        SortOn: = xlSortOnValues, Thứ tự: = xlAscending, DataOption: = xlSortNormal 
    Với ActiveWorkbook.Worksheets ("Sheet1"). Sắp xếp 
        .SetRange Phạm vi ("A1: E7") 
        .Tiêu đề = xlYes 
        .MatchCase = False
        .Orientation = xlTopToBottom 
        .SortMethod = xlPinYin 
        .Apply 
    End With
Trong hướng dẫn có thể tải xuống trên các macro Excel, chúng tôi cung cấp cho bạn nhiều từ vựng hơn để làm việc với cơ sở dữ liệu Excel và nhiều macro đơn giản hơn có thể được sử dụng trong tất cả các phiên bản Excel. Bạn có thể sao chép / dán bất kỳ thứ gì trong số chúng vào sổ làm việc của riêng bạn.

Mã VBA cho các câu lệnh

Trong số các câu lệnh VBA mà bạn sẽ khám phá trong hướng dẫn có thể tải xuống trên các macro Excel, có câu lệnh " If " bao gồm Then , ElseIf và End If , có câu lệnh " Do " bao gồm Loop , Until , While and Exit , có " Đối với " tuyên bố bao gồm Để , Bước , Tiếpvà Exit , đó là mạnh mẽ " Select Case " tuyên bố trong đó có trường hợp , End Select và Exit và các phát biểu khác.
Rất nhiều khách truy cập hỏi chúng tôi cách họ có thể xóa toàn bộ dòng khi một ô nhất định trống. Ví dụ: trong bảng bên dưới, các hàng 2 và 5 sẽ bị xóa:
zi-vba-statement
Đầu tiên nhập xxx nơi bạn muốn vòng lặp dừng (bên dưới giá trị cuối cùng: B7). Chọn ô ở đầu cột chứa các giá trị cần xem xét (B1) và chạy macro.
Sub proDelete ()
        Phạm vi ("B1"). Chọn 
        Do Until Selection.Value = "xxx" 
                  Nếu Selection.Value = "" Sau đó 
                          chọn Selection.EntireRow.Delete 
                  Else 
                          Selection.Offset (1, 0) .Chọn 
                  End If 
            Loop
            Phạm vi ("A1").
Kết thúc phụ
Nếu bạn đã hoàn thành bài tập miễn phí " Khái niệm cơ bản miễn phí ", chỉ cần sao chép / dán macro ở trên trong trình soạn thảo Visual Basic và chạy nó.
Thoát khỏi vòng lặp
Trong vòng lặp ở trên nếu bạn muốn vòng lặp dừng lại khi nó tìm thấy giá trị 99, bạn có thể thêm dòng mã này trong vòng lặp: 
Nếu Selection.Value = 99 Sau đó thoát khỏi
Thoát cho phép bạn thoát khỏi hầu hết mọi thứ như: Thoát khỏi Lối ra phụ 
để 
thoát


Mã VBA cho Biến

Bạn sẽ bắt đầu phát triển các chương trình phức tạp và phức tạp trong Excel và bạn sẽ bắt đầu làm việc với các bộ dữ liệu rất lớn khi bạn phát hiện ra các biến.
Biến là một đối tượng mà bạn tạo và trong đó bạn có thể lưu trữ văn bản, ngày, số hoặc gần như bất kỳ thứ gì khác. Tại sao bạn nên sử dụng biến? Lý do tốt đầu tiên là làm cho mã của bạn năng động, để tránh khó mã hóa một số giá trị.
Mã hóa cứng và Mã hóa động
Bạn đang khó mã hóa khi bạn viết: Workbooks.Open "MyFile.xls"
Bạn đang tự động mã hóa khi bạn nhập tên của tệp trong một ô (A1) của trang tính Excel của bạn và bạn viết. varWorkbook = Range ("A1") Giá trị 
Workbooks.Open varWorkbook

Tại thời điểm này bạn hoặc người dùng có thể thay đổi tên của sổ làm việc để mở trong ô A1 thay vì đi đến mã VBA trong Visual Basic Editor.
Bạn cũng sẽ tạo các biến để đếm số lượng hàng, lưu trữ kết quả trong một biến và sau đó thực hiện một vài thứ như có nhiều hàng.
Đối với varCounter = 1 đến varNbRows 
        Selection.Value = Selection.Value * 2 
        Selection.Offset (1.0) .select 
Next
Trong thủ tục VBA bên trên giá trị trong mỗi ô được nhân với 2 thì ô bên dưới được chọn. Hành động này được lặp lại nhiều lần vì có các hàng trong tập hợp dữ liệu.


Mã VBA cho các mục đích khác

Làm việc với các chương trình Microsoft khác bằng VBA trong Excel
Trong Excel bạn có thể mở một chương trình khác và thậm chí phát triển một chương trình bên trong nó bằng VBA. Ví dụ ở đây là một macro ngắn mở Word, sau đó một tài liệu mới để sao chép / dán nội dung của 2 ô từ Excel sang Word và lưu tài liệu Word trong cùng thư mục với sổ làm việc trong đó macro chạy:
Tập thể dục
Bước 1: Khi bạn đã học được cách làm trong " Cơ bản miễn phí ", hãy sao chép / dán macro sau vào sổ làm việc mới mà bạn sẽ lưu dưới dạng word.xlsm.
Sub proWord () 
Dim varDoc Như đối tượng       
        Đặt varDoc = CreateObject ("Word.Application")
                  varDoc.Visible = True 
                  Sheets ("Sheet1") Phạm vi ("A1: B1") Sao chép 
                  varDoc.documents.Add 
                  varDoc.Selection.Paste 
                  varDoc.activedocument.SaveAs ThisWorkbook.Path & "/" & "testWord.doc" 
                  varDoc.documents.Close
        varDoc.Quit 
         
Application.CutCopyMode = False
Kết thúc phụ
Bước 2: Nhập các giá trị trong các ô A1 và B1 (ví dụ như tên đầu tiên và tên của bạn).
Bước 3: Chạy macro
Bạn kết thúc với một tài liệu Word có tên là testWord .Doc trong cùng thư mục với sổ làm việc Excel trong đó macro chạy. Tài liệu Word bao gồm một trang tính với một bảng hai ô với các giá trị của ô A1 và B1 của sổ làm việc.
Lưu ý rằng bạn sử dụng VBA cho Word trong đối tượng varDoc mà bạn đã tạo. Nếu bạn không biết VBA cho Word hãy nhớ rằng cũng có một Macro Recorder trong Word. Đối tượng varDoc có thể được hiển thị hoặc bạn có thể làm việc bên trong nó mà không cần đưa nó lên màn hình với: 
varDoc.Visible = False
API làm việc với Windows
API là viết tắt của Giao diện lập trình ứng dụng và bao gồm một tập hợp các hàm cung cấp quyền truy cập có lập trình vào các tính năng của hệ điều hành (Windows). Khi bạn sử dụng API trong VBA cho Excel, bạn không chỉ điều khiển Excel mà còn hầu hết các phần của Windows.

No comments:

Post a Comment

Over 50 Ebooks Excel and VBA free Download

1. Statistics and Probability for Engineering Applications With Microsoft Excel by W.J. DeCoursey - PDF Free Download Download Siz...