:!: โปรดทราบ Image
    1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ดครับ Image
    2. การสมัครสมาชิกเพื่อโพสต์คำถาม ดาวน์โหลดไฟล์แนบไปศึกษา ทำตามขั้นตอนด้านล่างครับ
      1. สมัครสมาชิก ดูขั้นตอนตาม Link นี้ครับ => สมัครสมาชิก กรณีลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่นี่ครับ => Reset รหัสผ่านImage
      2. Login เข้าระบบโดยคลิก Login ตรงมุมขวาบนของหน้านี้ Image กรณีมีปัญหาในการเข้าใช้งาน คลิก Link นี้เพื่อแจ้งผู้ดูแลระบบครับ => ติดต่อผู้ดูแลระบบ
    3. เมื่อ Login แล้วสามารถกำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษได้ที่ Link นี้ครับ => ตั้งค่าส่วนตัว Image
    4. วิธีการตั้งและตอบกระทู้ดูได้ที่ Link นี้ครับ => วิธีการตั้งและตอบกระทู้ Image
    5. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ Link นี้ครับ => จัดรูปแบบตัวอักษร และสามารถกำหนดขนาดตัวอักษรใน Browser ได้ที่นี่ครับ ==> กำหนดขนาดตัวอักษรใน Browser Image

จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
preseed
Member
Member
Posts: 10
Joined: Thu Dec 08, 2016 7:52 am

จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#1

Postby preseed » Sun Dec 11, 2016 1:10 pm

สวัสดีครับ ผมอยากจะรบกวนช่วยดู code ที่ผมต้องการคือ

ในไฟล์งาน คอลัมน์ E จะเป็นตัวรหัส โดยที่ พอรันmacro แล้วจะให้นำรหัสไปใส่ในช่อง B4 ของ Sheet Temp
แล้วทำการcopy Sheet Temp ไปต่อท้าย แล้วเปลี่ยนชื่อไปตามรหัส ของช่องB4ในSheetTemp
แล้วทำวนไปจนสุดข้อมูลใน คอลัมน์ E ครับ

แต่ติดปัญหาว่า มีการแสดงผลไม่ตรงมีการกระโดดข้ามของข้อมูล รบกวนช่วยดูและแนะนำทีครับ


ขอบคุณครับ

Code ครับ

Code: Select all

Sub test()
    Dim i As Long
    Dim r As Range
       On Error Resume Next
    With Worksheets("Data")
        Set r = .Range("E2", .Range("E65536").End(xlUp))
    End With
    For i = 1 To r.Count
       
        If i > 1 Then
        Sheets("Data").Select
        Cells((2 + i), 5).Select
        Selection.Copy
        Sheets("Temp").Select
        Range("B4").Select
        ActiveSheet.Paste
        Sheets("Temp").Select
        Sheets("Temp").Copy After:=Sheets(2)
        ActiveSheet.Name = Range("B4")
        Sheets("Data").Select
       
        End If
       
        Sheets("Data").Select
        Range("E2").Select
        Selection.Copy
        Sheets("Temp").Select
        Range("B4").Select
        ActiveSheet.Paste
        Sheets("Temp").Select
        Sheets("Temp").Copy After:=Sheets(2)
        ActiveSheet.Name = Range("B4")
        Sheets("Data").Select
       

    Next i
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: 21635
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#2

Postby snasui » Sun Dec 11, 2016 2:13 pm

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

Code: Select all

Dim rall As Range
Dim r As Range
With Sheets("Data")
    Set rall = .Range("e2", .Range("e" & .Rows.Count).End(xlUp))
    For Each r In rall
        Sheets("Temp").Range("b4").Value = r.Value
        Sheets("Temp").Copy after:=Sheets("Temp")
    Next r
End With


preseed
Member
Member
Posts: 10
Joined: Thu Dec 08, 2016 7:52 am

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#4

Postby preseed » Mon Dec 12, 2016 4:24 pm

ขอรบกวนสอบถามต่อจากด้านบนครับ

คือตอนนี้ผมต้องการจะแยกsheet ที่ได้รันมา แยกเป็นไฟล์ PDF แต่ละไฟล์ โดยชื่อเป็นไปตามชื่อsheet
และทำการsave ไปในfolder โดยให้สร้าง folder ตามชื่อ sheet ด้วยครับ

เช่น ชื่อsheet ในไฟล์เป็น 1 ให้สร้าง folder ชื่อ 1 และsaveไฟล์ เป็น 1.pdf แล้วไปใส่ใน folder 1ครับ ประมาณ D:\1\1.pdf แบบนี้ครับ

ผมลองเขียนแล้วตันเลยมาขอความช่วยเหลือครับ


Code: Select all

Sub á¡data()
Dim rall As Range
Dim r As Range
With Sheets("Data")
    Set rall = .Range("o2", .Range("o" & .Rows.Count).End(xlUp))
    For Each r In rall
        Sheets("Temp").Range("b4").Value = r.Value
        Sheets("Temp").Copy after:=Sheets("Temp")
        ActiveSheet.Name = Range("B4")
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\ตามค่า B4\ตามค่า B4.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    Next r
End With
End Sub



ขอบคุณครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 21635
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#5

Postby snasui » Mon Dec 12, 2016 8:51 pm

:D แนบไฟล์ที่ได้เขียน Code ล่าสุดแล้วมาด้วยจะได้ช่วยดูต่อไปจากนั้นครับ

preseed
Member
Member
Posts: 10
Joined: Thu Dec 08, 2016 7:52 am

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#6

Postby preseed » Mon Dec 12, 2016 9:12 pm

snasui wrote::D แนบไฟล์ที่ได้เขียน Code ล่าสุดแล้วมาด้วยจะได้ช่วยดูต่อไปจากนั้นครับ


รบกวนด้วยครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 21635
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#7

Postby snasui » Mon Dec 12, 2016 9:26 pm

:D ไม่พบ Code ด้านบนในไฟล์ที่แนบมา สำหรับการสร้าง Folder ศึกษาจาก Link นี้ viewtopic.php?t=132 ลองเขียนมาเองดูก่อนติดตรงไหนค่อยถามกันต่อครับ

preseed
Member
Member
Posts: 10
Joined: Thu Dec 08, 2016 7:52 am

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#8

Postby preseed » Tue Dec 13, 2016 8:05 am

ได้แล้วครับบบบ ขอบคุณครับ น้ำตาไหลเลย พอดีเป็นมือใหม่หัดเริ่ม :roll:
ผมแก้ได้เป็นตามนี้ครับ

Code: Select all

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 á¡pdf()
Dim i As Integer
For i = 3 To ThisWorkbook.Worksheets.Count
    If FolderExist("D:\Test\" & ThisWorkbook.Worksheets(i).Range("B4").Value & "") Then
        ChDir "D:\Test\" & Range("B4").Value & ""
ThisWorkbook.Worksheets(i).Copy
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\Test\" & ThisWorkbook.Worksheets(i).Range("B4").Value & "\" & Range("B4").Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWorkbook.Close False
   Else
    On Error Resume Next
        MkDir "D:\Test\"
        MkDir "D:\Test\" & ThisWorkbook.Worksheets(i).Range("B4").Value & ""
        ChDir "D:\Test\" & ThisWorkbook.Worksheets(i).Range("B4").Value & ""
        ThisWorkbook.Worksheets(i).Copy
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "D:\Test\" & ThisWorkbook.Worksheets(i).Range("B4").Value & "\" & Range("B4").Value & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWorkbook.Close False
    End If
Next i
End Sub


ผมรบกวนถามเพิ่มครับ คือตอนนี้ถ้าผมรัน code

Code: Select all

Sub á¡data()
Dim rall As Range
Dim r As Range
With Sheets("Data")
    Set rall = .Range("o2", .Range("o" & .Rows.Count).End(xlUp))
    For Each r In rall
        Sheets("Temp").Range("b4").Value = r.Value
        Sheets("Temp").Copy after:=Sheets("Temp")
        ActiveSheet.Name = Range("B4")
    Next r
End With
End Sub


เวลาทำงานจะแยกรหัสออกมาจาก form temp worksheet จะเยอะมากๆ แล้ว ผมจึ่งรัน code PDFต่อ คือปลายทางผมอยากได้ แค่ไฟล์ PDF ผมสามารถรวม code ได้เลยไหมครับ

ปล.แก้ไข แนบไฟล์เพิ่มครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 21635
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#9

Postby snasui » Tue Dec 13, 2016 10:24 pm

:D ตัวอย่างการเรียกใช้ Code อืนภายใน Code ใด Code หนึ่งครับ

Code: Select all

Sub แยกdata()
Dim rall As Range
Dim r As Range
With Sheets("Data")
    Set rall = .Range("o2", .Range("o" & .Rows.Count).End(xlUp))
    For Each r In rall
        Sheets("Temp").Range("b4").Value = r.Value
        Sheets("Temp").Copy after:=Sheets("Temp")
        ActiveSheet.Name = Range("B4")
    Next r
End With
Call Module3.แยกpdf
End Sub

preseed
Member
Member
Posts: 10
Joined: Thu Dec 08, 2016 7:52 am

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#10

Postby preseed » Tue Dec 13, 2016 10:40 pm

snasui wrote::D ตัวอย่างการเรียกใช้ Code อืนภายใน Code ใด Code หนึ่งครับ

Code: Select all

Sub แยกdata()
Dim rall As Range
Dim r As Range
With Sheets("Data")
    Set rall = .Range("o2", .Range("o" & .Rows.Count).End(xlUp))
    For Each r In rall
        Sheets("Temp").Range("b4").Value = r.Value
        Sheets("Temp").Copy after:=Sheets("Temp")
        ActiveSheet.Name = Range("B4")
    Next r
End With
Call Module3.แยกpdf
End Sub




ขอบคุณครับ อยากจะรบกวนถามอีก 1 อย่างครับ

ตอนนี้ผมแยกไฟล์ ออกมาเป็น pdf แล้วถ้า ผมอยากเปลี่ยนมาsave เป็น .jpg ได้ไหมครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 21635
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: จะทำการ copy sheet เปลี่ยนชื่อตามข้อมูลครับ แต่แสดงไม่ตรงครับรบกวนด้วยครับ

#11

Postby snasui » Wed Dec 14, 2016 6:47 am

:D การใช้ VBA จำเป็นต้องเขียนมาเองก่อนเสมอ ติดแล้วค่อยถามกันต่อ ลองศึกษาจาก Link นี้เป็นแนวทางครับ :arrow: Save As JPG


Return to “Excel”

Who is online

Users browsing this forum: Google [Bot], notta_nobi, plgm001, sksk and 30 guests