กรณีที่เราต้องส่งไฟล์ให้กับผู้ใช้งาน โดยกำหนดไว้ล่วงหน้าว่าจะต้องให้ผู้ใช้งาน Save File ไว้ใน Folder ที่กำหนดไว้ใน Code VBA เท่านั้น หากยังไม่มี Folder ดังกล่าวให้สร้าง Folder ขึ้นมาก่อนแล้วค่อย Save File
โดยสมมุติว่าให้ Save File ชื่อ Test.xls ไว้ที่ D:ProgramMasterFile
สามารถใช้ VBA ตามด้านล่างครับ
Option Explicit Function FolderExist(Path As String) As Boolean On Error Resume Next If Not Dir(Path, vbDirectory) = vbNullString Then FolderExist = True End If On Error GoTo 0 End Function Sub TestFolder() If FolderExist("D:\Program\Master\File") Then ChDir "D:\Program\Master\File" ThisWorkbook.SaveAs ("Test.xls") 'Save file name as "Test" Else On Error Resume Next MkDir "D:\Program\" MkDir "D:\Program\Master" MkDir "D:\Program\Master\File" ChDir "D:\Program\Master\File" ThisWorkbook.SaveAs ("Test.xls") 'Save file name as "Test" End If End Sub
การเรียกใช้งานจะเรียก TestFolder ซึ่งจาก Code ด้านบนเป็นการสร้าง Folder หลักขึ้นมาก่อนแล้วค่อยสร้าง Folder ย่อย จากนั้นค่อย Save File ใน Folder ย่อยนั้น
Revised: January 28, 2017 at 20:30
โอ๊ว…ทำได้จริงๆด้วย ขอบคุณมากครับ