Lưu trong Macro bằng tên tệp mong muốn (Microsoft Word)
Steve tạo các tài liệu yêu cầu đặt tên tệp của tài liệu trong tiêu đề và trong chú thích pháp lý trên trang đầu tiên và trang thứ hai của tài liệu. Anh ấy đã tạo một macro mà sau khi tên tệp được nhập vào tiêu đề, hãy sao chép nó và dán nó vào các trường biểu mẫu văn bản trong chú thích ở những vị trí thích hợp. Bước lắp ráp tài liệu tiếp theo của anh ấy là lưu tài liệu bằng lệnh “Save As”. Tài liệu sẽ được lưu bằng cách sử dụng cùng một tên tệp được nhập trong tiêu đề và chú thích.
Khi thực hiện việc này theo cách thủ công, Steve sẽ hiển thị hộp thoại Lưu dưới dạng, dán tên tệp vào đó, sau đó nhấp vào Lưu. Anh ấy đã cố gắng tạo mã macro để thêm bước “Lưu dưới dạng” này, nhưng không thể tìm ra cách thực hiện. Khi Word ghi lại các bước thủ công, Steve nhận được một thứ như sau:
ActiveDocument.SaveAs FileName:="04562.sw.docx
Điều này cho thấy rằng Word đang ghi lại tên tệp cụ thể đang được sử dụng khi thực hiện các bước thủ công, nhưng Steve muốn sử dụng một tên tệp khác, dựa trên những gì có trong tiêu đề của tài liệu. Thông tin đó (tên tệp) tình cờ có trong Clipboard khi macro được chạy, vì vậy cũng có thể lấy thông tin từ Clipboard, nhưng Steve cũng lúng túng không biết làm thế nào để thực hiện điều đó.
Vì Steve đã có macro để sao chép tên tệp và anh ấy hài lòng với macro đó, nên chỉ cần một vài thay đổi đối với mã của anh ấy để tệp được lưu bằng tên thích hợp. Hãy thử thêm mã sau vào những vị trí thích hợp trong macro hiện tại của bạn:
Dim strTemp As String Dim MyData As DataObject Set MyData = New DataObject MyData.GetFromClipboard strTemp = MyData.GetText(1) ActiveDocument.SaveAs FileName:=Trim(strTemp) & ".docx"
Miễn là bạn có một chuỗi văn bản trong Bảng tạm mà bạn muốn sử dụng cho tên tệp của mình, thì mã này sẽ hoạt động. Nó thậm chí còn thêm phần mở rộng .Doc vào cuối chuỗi trong Clipboard. Mã này yêu cầu bạn thiết lập tham chiếu cho Microsoft Forms trong VBA Editor.
(Chọn Tài liệu tham khảo từ menu Công cụ trong Trình chỉnh sửa.)
Tất nhiên, cần phải chỉ ra rằng bạn có thể muốn suy nghĩ lại cách tiếp cận của mình đối với macro này. Trên thực tế, bạn có thể loại bỏ hầu hết mã của mình nếu bạn thực hiện một cách tiếp cận hoàn toàn khác. Ví dụ: trước tiên bạn có thể yêu cầu mọi người lưu tài liệu và sau đó tham chiếu tên tệp trong chính tài liệu thông qua việc sử dụng các trường. (Trường FILENAME có thể được sử dụng cho mục đích này.)
Thay vì sử dụng macro để sao chép tên tệp vào trang đầu tiên và trang thứ hai của tài liệu, bạn cũng có thể sử dụng một kiểu đã xác định (chẳng hạn như DocTitle hoặc DocName) để tham chiếu đến tên tệp của bạn, sau đó sử dụng trường STYLEREF ở nơi khác trong tài liệu để tham chiếu đến tên đó. Bằng cách đó, nó chỉ phải được nhập một lần và không cần macro. Bạn có thể tìm thấy nhiều cách lặp lại dữ liệu trong các vùng khác nhau của tài liệu tại trang này trên trang của Word MVP:
http://gregmaxey.mvps.org/Repeating_Data.htm
Bạn cũng có thể tạo một UserForm để thu thập dữ liệu từ người dùng (để có được tên tệp mong muốn), sau đó lưu tài liệu dưới tên đó.
Sau đó, macro có thể gán tên tệp cho trường TITLE và bất kỳ vị trí nào trong tài liệu tham chiếu đến trường TITLE sẽ tự động hiển thị tên tệp mà người dùng đã nhập.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.
(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (10809) áp dụng cho Microsoft Word 2007, 2010, 2013 và 2016. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: