2011-08-24 53 views
11

Tôi đang cố gắng tìm cách sử dụng tên trang tính Excel dưới dạng biến trong macro mà tôi đã viết. Mỗi tháng tôi xử lý một sổ làm việc được gửi cho tôi với 2 trang tính. Một phần của macro sử dụng giao diện 'Mở tệp' để điều hướng đến thư mục và mở tệp.Nhận tên trang tính Excel và sử dụng làm biến trong macro

Trang tính đầu tiên trong tệp được gọi là 'Báo cáo', tĩnh. Tất cả những gì tôi làm với điều đó là xóa nó (vì tôi không cần nó).

Tờ thứ hai có thể được gọi là bất kỳ thứ gì và đó là trang tính mà tôi cần chạy macro. Có cách nào để nói:

shtName = %whatever_the_sheetname_is_called% 

và sau đó sử dụng biến 'shtName' trong toàn bộ macro? Tôi cho rằng tên tập tin mới này là một biến sẽ giúp ích cho bạn.

Trả lời

27

trong một Macro Visual Basic bạn sẽ sử dụng

pName = ActiveWorkbook.Path  ' the path of the currently active file 
wbName = ActiveWorkbook.Name  ' the file name of the currently active file 
shtName = ActiveSheet.Name  ' the name of the currently selected worksheet 

Bảng đầu tiên trong một bảng tính có thể được tham chiếu bởi

ActiveWorkbook.Worksheets(1) 

như vậy sau khi xóa [Báo cáo] tab mà bạn sẽ sử dụng

ActiveWorkbook.Worksheets("Report").Delete 
shtName = ActiveWorkbook.Worksheets(1).Name 

để "làm việc trên trang tính đó sau", bạn có thể tạo đối tượng dải ô như

Dim MySheet as Range 
MySheet = ActiveWorkbook.Worksheets(shtName).[A1] 

và tiếp tục làm việc trên MySheet(rowNum, colNum) vv ...

tạo shortcut của một đối tượng phạm vi mà không xác định shtName:

Dim MySheet as Range 
MySheet = ActiveWorkbook.Worksheets(1).[A1] 
+0

+1 câu trả lời của bạn là rất rõ ràng – JMax

+0

Đồng ý. Đó chỉ là những gì tôi đang tìm kiếm. –

Các vấn đề liên quan