vba excel แยก sheet ตามกลุ่มข้อมูลอัตโนมัติ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

16 ก.พ. 64 , 06:27:03
อ่าน 783 ครั้ง

napat2020

  • สมาชิกไท.Access
  • กระทู้: 16

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

สวัสดีครับ อจ ทุกท่าน
ผมทำการแยก sheet ด้วย vba excel
ตามกลุ่มของข้อมูลที่เหมือนกัน
มันก็ทำงานได้ปกติ.,.ครับ
 ปัญกาของผมคือ ผมจะต้องมาจัดรูปแบบต่างๆ รวมถึงจัดหน้ากระดาษใหม่ครับ
ถ้าอย่างที่ผมคิดไว้คือ สร้าง sheet
ต้นแบบไว้ แล้วค่อยเอาข้อมูลมาหยอด
จะได้หรือเปล่า และจะต้องแก้ code อย่างไรครับ ผมรบกวนด้วยครับ

โค๊ด: [Select]
Sub SpiltSheet()

On Error Resume Next

'Declaring Constant Variable
 

Application.DisplayAlerts = False

Const col = "A"

Const header_row = ("1:1")

Const starting_row = 2

Dim Source_sheet As Worksheet

Dim destination_sheet As Worksheet

Dim current_sheet As Worksheet

Dim footer_sheet As Worksheet

Dim source_row As Long

Dim last_row As Long

Dim destination_row As Long

Dim Maker As String

'Set source_sheet = ActiveSheet

Set Source_sheet = Sheets("Base")

Set footer_sheet = Sheets("Footer")

 
    last_row = Source_sheet.Cells(Source_sheet.Rows.Count, col).End(xlUp).Row
 

    For source_row = starting_row To last_row

    Maker = Source_sheet.Cells(source_row, col).Value
 

    Set destination_sheet = Nothing

    On Error Resume Next

    Set destination_sheet = Worksheets(Maker)
   

    On Error GoTo 0
   

    If destination_sheet Is Nothing Then

        Set destination_sheet = Worksheets.Add(after:=Worksheets(Worksheets.Count))

        destination_sheet.Name = Maker

   
        'Header

        Source_sheet.Rows(header_row).Copy Destination:=destination_sheet.Rows(header_row)

 
    End If
   

    ' Retrive data

    destination_row = destination_sheet.Cells(destination_sheet.Rows.Count, col).End(xlUp).Row + 1

    Source_sheet.Rows(source_row).Copy Destination:=destination_sheet.Rows(destination_row)
 

    Next source_row

End Sub


 

08 ก.ย. 64 , 22:43:17
ตอบกลับ #1

nobody0002

  • สมาชิกไท.Access
  • กระทู้: 1

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: vba excel แยก sheet ตามกลุ่มข้อมูลอัตโนมัติ
« ตอบกลับ #1 เมื่อ: 08 ก.ย. 64 , 22:43:17 »
มีแต่ข้อมูลดีๆ จริงๆ ครับเว็บนี้  :smile:

 

09 ก.ย. 64 , 08:30:42
ตอบกลับ #2

PNR

: vba excel แยก sheet ตามกลุ่มข้อมูลอัตโนมัติ
« ตอบกลับ #2 เมื่อ: 09 ก.ย. 64 , 08:30:42 »
เนื่องจาก ผมศึกษาแต่ access เพราะชื่อเว็บก็บอกอยู่ว่า Thai access
เลยไม่ถนัด Excel เท่าไร นานๆจะได้ศึกษาจากเพื่อนสมาชิกที่ถามซักครั้ง แต่จะพยายามดูให้นะครับ

จากโจทย์
อ้างถึง
สร้าง sheet
ต้นแบบไว้ แล้วค่อยเอาข้อมูลมาหยอด
จะได้หรือเปล่า และจะต้องแก้ code อย่างไรครับ


Dim xlapp As Object
Dim sPath, sFile As String
    sPath = "C:\"
    sFile = sPath & "MyExcelFile.xls"
Set xlapp = CreateObject("excel.application")
With xlapp
.Visible = True
.workbooks.Open (sFile)
.sheets("MysheetName").select 'กำหนดให้เลือก Sheet ที่เราสร้างไว้
.ActiveSheet.Range("A2") = "CCC" 'กำหนดค่าที่จะจัดวางข้อมูลตามใจชอบเลย

End With

ขั้นตอนการทำงาน
1.เปิดไฟล์ Excel ตาม Path ที่เรากำหนดไว้
2.เปิดไฟล์มาแล้วไปยัง Sheet ที่เราสร้างไว้
3.นำข้อมูลมาวางใน sheet ตามต้องการ

ส่วนขั้นตอนการนำข้อมูลมาวางเนื่องจากไม่มีตัวอย่างข้อมูล
ท่านเลยต้องเขียนต่อจากนี้ตามความต้องการของท่านได้เลย

« แก้ไขครั้งสุดท้าย: 09 ก.ย. 64 , 08:51:39 โดย PNR »
Time to stop for me  :dizzy:
 

09 ก.ย. 64 , 10:16:45
ตอบกลับ #3

OddyWriter

: vba excel แยก sheet ตามกลุ่มข้อมูลอัตโนมัติ
« ตอบกลับ #3 เมื่อ: 09 ก.ย. 64 , 10:16:45 »
จากข้อมูลที่แจ้งมานั้น สามารถทำได้ครับ เพียงแต่ข้อมูลยังไม่ชัดเจนพอสำหรับการเขียน Code VBA Excel

1. Sheet ต้นแบบมีจำนวนกี่ชีต
2. Sheet ข้อมูลมีกี่ชีต
3. ข้อมูลมีกี่กลุ่มสำหรับการแยกชีต
4. จำนวนคอลันน์ที่ใช้สำหรับการแจกแจงข้อมูลมีกี่คอลัมน์
5. รูปแบบข้อมูลดิบเป็นอย่างไร

อันนี้เท่าที่นึกออกนะครับ
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 


บอร์ดเรียนรู้ Access สำหรับคนไทย