2009-06-10 65 views
14

Nói chung,VBA Cách lấy đường dẫn đến thư mục dữ liệu Ứng dụng Người dùng Hiện tại?

Sử dụng VBA, làm cách nào để xác định vị trí thư mục Dữ liệu ứng dụng người dùng hiện tại?

Các FileSystemObjects thư mục đặc biệt chỉ biết về 3 thư mục

  • WindowsFolder
  • SystemFolder
  • TemporaryFolder

Cụ thể, tôi cần một Word Macro để sao chép một tập tin vào một thư mục dưới thư mục Dữ liệu ứng dụng.

ví dụ: Trong VB.Net tôi có thể sử dụng My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData để làm điều này

Trả lời

26

Bạn có thể sử dụng Environ("AppData") để nhận đường dẫn này. Môi trường sẽ kéo bất kỳ biến hệ thống nào, có thể tìm thấy bằng cách sử dụng lệnh set tại dấu nhắc DOS.

+0

Tôi chưa bao giờ nghĩ để kiểm tra chuỗi Môi trường, điều này có tác dụng, cảm ơn :) –

+1

Tôi nghĩ rằng phương pháp Environ() là không đáng tin cậy vì các biến môi trường có thể được thay đổi bởi người dùng và có thể dẫn đến kết quả bất ngờ. Sử dụng API Windows có thể tốt hơn. Đây là một ví dụ để tìm tài liệu Documents/My Documents: http://dailydoseofexcel.com/archives/2009/02/26/get-the-path-to-my-documents-in-vba/#comment-38211 Nếu bạn có thể tìm cách để làm điều đó cho thư mục AppData, nó có thể là một cách tốt hơn. – authentictech

7

Sử dụng advapi32.dll, bạn có thể lấy USERPROFILE qua

Environ("USERPROFILE") 

Connect này với "Application Data" thư mục (trong đó có một tiêu chuẩn, tên cụ thể) để có được những gì bạn muốn

CStr(Environ("USERPROFILE") & "\Application Data") 

Để biết thêm thông tin, hãy xem MSDN

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