Hướng dẫn này sẽ giới thiệu cho bạn cách làm việc với Đối tượng sổ làm việc trong VBA.
Đối tượng Sổ làm việc
Trước tiên, để tương tác với sổ làm việc trong VBA, bạn phải hiểu Đối tượng sổ làm việc.
Với đối tượng sổ làm việc, bạn có thể tham chiếu sổ làm việc theo tên của chúng như sau:
1 | Workbooks ("Book2.xlsm"). Kích hoạt |
Tuy nhiên, mã này sẽ chỉ hoạt động nếu sổ làm việc đang mở. Nếu sổ làm việc bị đóng, bạn sẽ cần cung cấp đường dẫn đầy đủ của sổ làm việc:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Thay vì nhập đường dẫn đầy đủ, nếu sổ làm việc mong muốn của bạn nằm trong cùng thư mục với sổ làm việc nơi mã của bạn được lưu trữ, bạn có thể sử dụng mã dòng này để mở sổ làm việc:
1 | Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm") |
Điều này sử dụng đối tượng ThisWorkbook mà chúng ta sẽ thảo luận trong phần tiếp theo.
Số chỉ mục sổ làm việc
Cuối cùng, bạn có thể tham khảo các sổ làm việc theo “Số chỉ mục” của chúng. Số chỉ mục của sổ làm việc tương ứng với thứ tự mà sổ làm việc được mở (về mặt kỹ thuật là vị trí của sổ làm việc trong Bộ sưu tập sổ làm việc).
1 | Workbooks (1). Kích hoạt |
Điều này rất hữu ích nếu bạn muốn làm điều gì đó như đóng sổ làm việc đã mở đầu tiên (hoặc cuối cùng).
Kích hoạt Workbook, ActiveWorkbook và ThisWorkbook
Nếu một sổ làm việc là KHÔNG HOẠT ĐỘNG, bạn có thể truy cập các đối tượng của Workbook như sau:
1 | Workbooks ("Book2.xlsm"). Sheets ("Sheet1"). Range ("A1"). Value = 1 |
Tuy nhiên, nếu sổ làm việc đang Hoạt động, bạn có thể bỏ qua đối tượng sổ làm việc:
1 | Trang tính ("Trang 1"). Phạm vi ("A1"). Value = 1 |
Và nếu bạn muốn tương tác với trang tính đang hoạt động của sổ làm việc, bạn cũng có thể bỏ qua đối tượng trang tính:
1 | Phạm vi ("A1"). Value = 1 |
Kích hoạt Workbook
Để kích hoạt sổ làm việc, hãy sử dụng Kích hoạt phương pháp.
1 | Workbooks ("Book2.xlsm"). Kích hoạt |
Giờ đây, bạn có thể tương tác với đối tượng của Book2 mà không cần nêu rõ tên sổ làm việc.
ActiveWorkbook
Các ActiveWorkbook đối tượng luôn luôn tham chiếu đến sổ làm việc đang hoạt động. Điều này hữu ích nếu bạn muốn gán ActiveWorkbook cho một biến để sử dụng sau này.
12 | Dim wb As WorkbookĐặt wb = ActiveWorkbook |
ThisWorkbook
Các ThisWorkbook đối tượng luôn tham chiếu đến sổ làm việc nơi mã đang chạy được lưu trữ. Để kích hoạt ThisWorkbook, hãy sử dụng dòng mã sau:
1 | ThisWorkbook.Activate |
Mở Workbook
Để mở một sổ làm việc, hãy sử dụng Phương pháp mở:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Sổ làm việc mới mở sẽ luôn trở thành ActiveWorkbook, cho phép bạn dễ dàng tương tác với nó.
1 | ActiveWorkbook.Save |
Phương pháp Mở có một số đối số khác, cho phép bạn mở ở chế độ chỉ đọc, mở sổ làm việc được bảo vệ bằng mật khẩu và hơn thế nữa. Nó được đề cập ở đây trong bài viết của chúng tôi về Mở / Đóng Sổ làm việc.
Mở và gán cho biến
Bạn cũng có thể mở một sổ làm việc và gán nó cho một biến cùng một lúc:
12 | Dim wb As WorkbookĐặt wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Mở hộp thoại tệp
Bạn cũng có thể kích hoạt Hộp thoại Mở Tệp như thế này:
12345678 | Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)Kết thúc Sub |
Tạo Sổ làm việc Mới (Thêm)
Dòng mã này sẽ tạo một sổ làm việc mới:
1 | Workbooks.Add |
Sổ làm việc mới bây giờ trở thành ActiveWorkbook, cho phép bạn tương tác với nó (ví dụ: lưu sổ làm việc mới).
Thêm sổ làm việc mới vào biến
Bạn cũng có thể thêm trực tiếp sổ làm việc mới vào một biến:
12 | Dim wb As WorkbookĐặt wb = Workbooks.Add |
Đóng sổ làm việc
Đóng & Lưu
Để đóng một sổ làm việc bằng cách lưu, hãy sử dụng Đóng phương pháp với Lưu thay đổi đặt thành TRUE:
1 | ActiveWorkbook.Close SaveChanges: = True |
Đóng mà không lưu
Để đóng mà không lưu, hãy đặt Lưu thay đổi bằng FALSE:
1 | ActiveWorkbook.C Close SaveChanges: = False |
Sổ làm việc Lưu dưới dạng
Các Phương pháp SaveAs được sử dụng để lưu một sổ làm việc dưới dạng.
Để lưu sổ làm việc với một tên mới, trong cùng một thư mục, bạn có thể ngụ ý sử dụng điều này:
1 | ActiveWorkbook.SaveAs "mới" |
trong đó “mới” là tên tệp mới.
Để lưu sổ làm việc trong thư mục mới có phần mở rộng tệp cụ thể, chỉ cần chỉ định thư mục và tên tệp mới:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Các ví dụ VBA Workbook khác
Tên sổ làm việc
Để lấy tên của sổ làm việc:
1 | MsgBox ActiveWorkbook.Name |
Bảo vệ sổ làm việc
Để bảo vệ cấu trúc sổ làm việc khỏi chỉnh sửa, bạn có thể sử dụng Phương pháp bảo vệ (mật khẩu tùy chọn):
1 | Workbooks ("book1.xlsm"). Bảo vệ "mật khẩu" |
Để bỏ bảo vệ một sổ làm việc, hãy sử dụng Phương pháp UnProtect:
1 | Workbooks ("book1.xlsm"). Bỏ bảo vệ "mật khẩu" |
Vòng qua tất cả các sổ làm việc đang mở
Để lặp lại tất cả các sổ làm việc đang mở:
123456789 | Sub LoopThroughWBs ()Dim wb As WorkbookĐối với mỗi wb trong sổ làm việcMsgBox wb.NameTuần tiếp theoKết thúc Sub |
Sự kiện Kích hoạt Sổ làm việc
Bạn có thể chạy một số mã bất cứ khi nào một sổ làm việc cụ thể được mở bằng Sự kiện mở sổ làm việc.
Đặt quy trình này Mô-đun ThisWorkbook của sổ làm việc của bạn:
123 | Private Sub Workbook_Open ()Trang tính ("sheet1"). Kích hoạtKết thúc Sub |
Quy trình này sẽ kích hoạt Sheet1 mỗi khi sổ làm việc được mở.