2010-01-26 50 views
10

Application.Run "MyWorkBook.xls! Macro1"Sử dụng Application.Run trong Excel VBA khi tên workbook chứa dấu cách

sẽ làm việc (chạy macro gọi là Macro1 trong file MyWorkBook.xls)

Application.Run "My Work Book.xls!Macro1" 

sẽ không (nếu tên bảng tính có chứa dấu cách, Excel nói "macro không thể tìm thấy").

tôi chỉ dành giờ tìm ra rằng đó là không gian gây ra vấn đề này ...

Có một khoảng cách này mà không cần đổi tên các tập tin?

Trả lời

21

Sử dụng dấu ngoặc đơn bao quanh filename:

Application.Run "'My Work Book.xls'!Macro1" 
+0

Rực rỡ, cảm ơn! – Laurent

+1

Niềm vui của tôi. Tôi đã ở đó ':)' –

+0

Nói chung, sẽ tốt hơn nếu luôn sử dụng dấu ngoặc kép khi xử lý tên tập tin trong Excel – Ahmad

6

Thay thế mỗi không gian với %20

Application.Run "My%20Work%20Book.xls!Macro1" 
+0

Đây thực sự là một bình luận, không phải là câu trả lời cho câu hỏi. Bạn luôn có thể nhận xét về bài đăng của riêng mình và khi bạn có đủ [danh tiếng] (http://stackoverflow.com/faq#reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (http://stackoverflow.com/ đặc quyền/bình luận). –

+8

Tôi biết điều này là tất cả từ một thời gian rất dài trước đây, nhưng tôi nghĩ rằng đây là một câu trả lời hoàn toàn hợp lệ. –

+0

Có điều này chắc chắn là một câu trả lời cho câu hỏi và không phải là một bình luận, @ClaricPWI chỉ là sai ở đây – cowls

1

Đây FILE_NAME là tên của tập tin mà bạn muốn gọi của bạn macro

  • Application.ru n "'" + File_name + "'" + "! Macro"
  • Trích dẫn đơn giữa dấu nháy kép, sau đó + File_name + trích dẫn đơn ở giữa dấu ngoặc kép + tên macro của bạn ở giữa dấu ngoặc kép.
Các vấn đề liên quan