🤗 snasui.com ยินดีต้อนรับ 🤗
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย 👍

💥 โปรดทราบ 💥
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ 👉🏾 สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ 👆🏾
    3. การ Login ผ่าน Facebook ดูวิธีที่ 👉🏾 Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ 👉🏾 Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ 👉🏾 ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ 👉🏾 ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ 👉🏾 วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ 👉🏾 จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ 👉🏾 กำหนดขนาดตัวอักษรใน Browser

ขอคำแนะนำ CodeVB สร้าง Folder พร้อม Save ไฟล์ลง Folder

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
tigerwit
Bronze
Bronze
Posts: 292
Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:

ขอคำแนะนำ CodeVB สร้าง Folder พร้อม Save ไฟล์ลง Folder

#1

Post by tigerwit »

จากไฟล์ที่แนบมา
ต้องการ
1. สร้าง Folder โดยตั้งชื่อ Folder ตามเซลล์ O2
2. ต้องการ save ไฟล์ โดนตั้งชื่อ ตามเซลล์ M2
ต้องปรับ Code อย่างไรครับ

Code: Select all

Sub EeportData()
        On Error Resume Next
        Dim sFolderPath As String
        Dim oFSO As Object
        Dim wb1 As Workbook
        Dim ws1 As Worksheet
        Dim wb2 As Workbook
        Dim Path As String
        Dim FName As String
        sFolderPath = "C:\" & Range("O2")
        'sFolderPath = "C:\PD\"
        MkDir sFolderPath
        Set wb1 = ThisWorkbook
        Set ws1 = wb1.Sheets("Exp")
        Path = sFolderPath
        'Path = "C:\PD\"
        FName = ws1.Range("M2") & ".xlsx"
        ws1.Range("A:G").Copy
        Set wb2 = Workbooks.Add
        With wb2.ActiveSheet.Range("A:G")
        .PasteSpecial (xlValues)
        .PasteSpecial (xlFormats)
        End With
        Application.DisplayAlerts = False
        wb2.SaveAs filename:=Path & FName
        Application.DisplayAlerts = True
        wb2.Close
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 29459
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำ CodeVB สร้าง Folder พร้อม Save ไฟล์ลง Folder

#2

Post by snasui »

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub Daily_Report()
    Dim sFolderPath As String
'    Dim oFSO As Object
    Dim wb1 As Workbook
    Dim ws1 As Worksheet
    Dim wb2 As Workbook
    Dim Path As String
    Dim FName As String
    
    On Error Resume Next
    sFolderPath = "C:\" & Range("O2").Value

    'sFolderPath = "C:\PD\"
    If Dir(sFolderPath, vbDirectory) = "" Then
        MkDir sFolderPath
    End If
    Set wb1 = ThisWorkbook
    Set ws1 = wb1.Sheets("Exp")
'    Path = sFolderPath
    'Path = "C:\PD\"
    FName = ws1.Range("M2") & ".xlsx"
    ws1.Range("A:G").Copy
    Set wb2 = Workbooks.Add
    With wb2.ActiveSheet.Range("A:G")
        .PasteSpecial (xlValues)
        .PasteSpecial (xlFormats)
    End With
    Application.DisplayAlerts = False
    wb2.SaveAs Filename:=sFolderPath & "\" & FName
    Application.DisplayAlerts = True
    wb2.Close
End Sub
เซลล์ M2 ต้องมีค่าด้วย Code ถึงจะทำงานได้ กรณีเป็น M2 จากชีตอื่นที่ไม่ใช่ชีต Main จะต้องเขียนระบุชื่อชีตประกอบเข้าไปด้วย Code ด้านบนนี้ค่าใน O2 และ M2 จะนำมาจากชีต Main ครับ
User avatar
tigerwit
Bronze
Bronze
Posts: 292
Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:

Re: ขอคำแนะนำ CodeVB สร้าง Folder พร้อม Save ไฟล์ลง Folder

#3

Post by tigerwit »

ขอบคุณครับผม
สอบถามต่อครับ

Code: Select all

    Set ws1 = wb1.Sheets("Exp")
ถ้าเราไม่อ้างถึงชื่อชีท exp แต่จะอ้างถึง sheet ตรงๆเลย (sheet23)
ทำได้ไหมครับ ต้องเขียนอย่างไร
User avatar
snasui
Site Admin
Site Admin
Posts: 29459
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอคำแนะนำ CodeVB สร้าง Folder พร้อม Save ไฟล์ลง Folder

#4

Post by snasui »

:D ทำได้และเขียนตรง ๆ ได้เลยเป็นเช่น Set ws1 = Sheet23 ครับ
User avatar
tigerwit
Bronze
Bronze
Posts: 292
Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:

Re: ขอคำแนะนำ CodeVB สร้าง Folder พร้อม Save ไฟล์ลง Folder

#5

Post by tigerwit »

ขอบคุณครับ
Post Reply