VBA Làm việc với Workbooks (Đối tượng Workbook)

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ở.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave