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

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

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#1

Post by djnotza »

คือจะนำข้อมูลจากชีท2 และ3 มาเรียงในชีท1 คือแต่ละชีทข้อมูลอาจจะเพิ่มลดได้แล้วแต่ว่าโปรแกรมจะป้อนไปเท่าไหร่ครับ จะเขียนยังไงดีครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: จะต้องเขียนโค๊ดยังไงครับช่วยแนะนำให้ด้วยนะครับ

#2

Post by snasui »

:D Code ทีเขียนมาแล้วอยู่ใน Procedure ใด ติดขัดบรรทัดใดครับ

อ่านกฎการใช้บอร์ดข้อ 5 ด้านบนประกอบด้วยครับ :roll:
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#3

Post by djnotza »

คือ ต้องการ เคลียร์ข้อมูลในหน้าแรกก่อน range(x,y).clearcontents
จากนั้นก็ไปวนลูปอ่านมาจากหน้า 1 เฟส ด้วยลูป Do while....Loop
ในคอลัมน์ G1 ลงไปเรื่อยๆจนกว่าจะพบช่องว่าง
ถ้าพบแล้วก็เลิกอ่าน ให้ไปอ่านที่ชีท 3 เพสต่อ โดยเริ่มจาก L1 ลงไปเรื่อยๆ
การอ่านค่ามาใส่จะใช้โค้ดแบบนี้ range(a,b).value = range(x,y).value

แต่คือผมพึ่งหัดทำ เลยไม่รู้ว่าจะเริ่มต้นยังไงดี ส่วนตัวปุ่ม 1 เฟส กับ 3เฟส ผมเปิดจากหนังสือช่วยเอา จนเหลือมาติดตรงนี้อ่าครับ
มีคนแนะนำให้ลองสร้างปุ่มเคลียแล้วนำข้อมุลมาลง แต่ผมไม่รู้จะเริ่มต้นยังไงครับ
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#4

Post by djnotza »

คือประมาณว่า เอาค่าที่โปรแกรมคำนวนได้ในหน้า1เฟส และ 3เฟส มาเรียงใส่หน้าแรกตามหัวข้ออะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#5

Post by snasui »

:D ควรตอบในสิ่งที่ผมถามก่อนเพื่อจะได้เข้าถึงปัญหาโดยไว Code จะต้องเขียนมาเองก่อน ติดตรงไหนแล้วค่อยถามกันครับ :ard:
snasui wrote: Code ทีเขียนมาแล้วอยู่ใน Procedure ใด ติดขัดบรรทัดใดครับ
คำว่า "อ่าครับ", "อ่ะครับ" ให้ใช้ครับว่า "ครับ" แทนครับ
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#6

Post by djnotza »

ผมลองเขียนใส่ปุ่มแบบนี้ครับ
Sub Button5_Click()
For i = 2 To 25
If Cells(i + 1, 1).Value > 0 Then
Sheets("สูตรการคำนวน 1 เฟส").Range("'สูตรการคำนวน 1 เฟส'!$G$2:'สูตรการคำนวน 1 เฟส'!$G$25").Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("โปรแกรมและตารางแสดงผล!$K$4").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 3 เฟส").Range("'สูตรการคำนวน 3 เฟส'!$L$2:'สูตรการคำนวน 3 เฟส'!$L$25").Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("โปรแกรมและตารางแสดงผล!$K$4").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
Next i
Application.CutCopyMode = False
End Sub

ถ้าสร้างปุ่มที่หน้า โปรแกรมและตารางแสดงผล โปรแกรมจะไม่คำนวนครับ (Button7)หน้า1
แต่ถ้าสร้างที่หน้า สูตรการคำนวน 1 เฟส โปรแกรมถึงจะคำนวนครับ (Button8)หน้า2
และถ้าใช้โค๊ดนี้ ข้อมุล สูตรการคำนวน 1 เฟส จะหายไปจะได้ สูตรการคำนวน 3 เฟสมาแทนครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#7

Post by snasui »

:D ตัวอย่าง Code ตามด้านล่างครับ

ให้คลุมเซลล์ว่างในชีท โปรแกรมและตารางแสดงผล คอลัมน์ K แล้วกดแป้น Delete ทิ้งไปก่อน

การ Copy เอาค่าว่างที่ได้จากสูตรมาวางด้วยจะทำให้เซลล์นั้นไม่เป็นเซลล์ว่างจริง ๆ การนำค่าใด ๆ มาวางต่อท้ายเซลล์ที่มีข้อมูลจะต้องเขียน Code Loop เรื่อยไป ทำให้เป็นภาระกับโปรแกรม

เมื่อลบค่าว่างที่ไม่ว่างจริงทิ้งไปแล้วค่อย Run Code ด้านล่าง ซึ่งเขียนให้เลือกเฉพาะเซลล์ที่มีข้อมูลมาวางเท่านั้น

สำหรับการวาง Code ในกล่องความเห็นนี้ควรโพสต์ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและการ Copy ไปทดสอบ ดูตัวอย่างจาก Link นี้ครับ viewtopic.php?f=3&t=1187

Code: Select all

Sub Button7_Click()
    Dim lng1 As Long, lng2 As Long
    With Application
        lng1 = .CountIf(Sheets("สูตรการคำนวน 1 เฟส").Range("G2:G25"), "*?")
        lng2 = .CountIf(Sheets("สูตรการคำนวน 3 เฟส").Range("L2:L25"), "*?")
    End With
    Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K4").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K4").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#8

Post by djnotza »

ผมลองเขียนดูแล้วครับ ถ้าใส่

Code: Select all

Sub Button7_Click()
    Dim lng1 As Long, lng2 As Long
    With Application
        lng1 = .CountIf(Sheets("สูตรการคำนวน 1 เฟส").Range("G2:G25"), "*?")
        lng2 = .CountIf(Sheets("สูตรการคำนวน 3 เฟส").Range("L2:L25"), "*?")
    End With
    Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K4").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K4").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
จะได้ค่าของหน้า 3 เฟส แต่ถ้าลบโค๊ดนี้ออก

Code: Select all

Sub Button7_Click()
    Dim lng1 As Long, lng2 As Long
    With Application
        lng1 = .CountIf(Sheets("สูตรการคำนวน 1 เฟส").Range("G2:G25"), "*?")
        lng2 = .CountIf(Sheets("สูตรการคำนวน 3 เฟส").Range("L2:L25"), "*?")
    End With
    Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K4").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
จะได้ค่าของหน้า 1เฟสครับอาจารย์
และถ้าเขียน

Code: Select all

Sheets("โปรแกรมและตารางแสดงผล").Range("K4").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues

ผลจะแสดงด้านล่างคำว่ารวมครับ ผมเลยลองเปลี่ยนจาก K4 เป็น K1

Code: Select all

Sub Button7_Click()
    Dim lng1 As Long, lng2 As Long
    With Application
        lng1 = .CountIf(Sheets("สูตรการคำนวน 1 เฟส").Range("G2:G25"), "*?")
        lng2 = .CountIf(Sheets("สูตรการคำนวน 3 เฟส").Range("L2:L25"), "*?")
    End With
    Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K1").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K1").End(xlDown) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
จึงได้คำตอบมาตอบในช่อง K4 ครับ
แต่ยังติดเรื่องผลที่ได้ครับ มันเหมือนต้องเลือกว่าจะแสดง 1 เฟส หรือ3 เฟสอย่างเดียวครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#9

Post by snasui »

:D Code เดิมอยู่ที่่สมมุติฐานว่าเป็นการเขียน Code โดยมีข้อมูลอยู่ที่ K4 เสมอ

แต่หากว่าเริ่มต้นคือ K4 เป็นค่าว่าง สามารถใช้ Code ด้านล่างเพื่อให้เริ่มวางข้อมูลที่ K4 ซึ่งผมปรับมาให้เฉพาะที่ต้องเปลี่ยนครับ

Code: Select all

'Other code
Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("K30").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("K30").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
'Other code
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#10

Post by djnotza »

ขอบคุณครับ ได้แล้วครับ ขอบคุณมากๆครับอาจารย์ ผมงงกับการเขียนสูตรนี้มาหลายวัน ขอบคุณครับ ^^
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#11

Post by djnotza »

อาจารย์ครับผมลองเขียนสูตรไปจนครบแล้ว
ผมลองกดดู ถ้าเกิด1เฟสไม่ได้ป้อนข้อมูล หรือ 3เฟสไม่ได้ป้อนข้อมูล โปรแกรมจะรันไม่ผ่านครับ
ต้องดักเงื่อนไขอะไรเพิ่มหรอครับ

Code: Select all

Sub Button7_Click()
    Range("K4:K27").ClearContents
    Range("L4:L27").ClearContents
    Range("N4:N27").ClearContents
    Range("O4:O27").ClearContents
    Range("P4:P27").ClearContents
    Range("R4:R27").ClearContents
    Range("S4:S27").ClearContents
    Range("T4:T27").ClearContents
    Range("U4:U27").ClearContents
    Range("V4:V27").ClearContents
    Dim lng1 As Long, lng2 As Long
    With Application
        lng1 = .CountIf(Sheets("สูตรการคำนวน 1 เฟส").Range("G2:G25"), "*?")
        lng2 = .CountIf(Sheets("สูตรการคำนวน 3 เฟส").Range("L2:L25"), "*?")
    End With

    
    Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("K27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
        
    Sheets("สูตรการคำนวน 1 เฟส").Range("L2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("L27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("Q2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("L27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues

    Sheets("สูตรการคำนวน 1 เฟส").Range("J2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("N27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("R2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("N27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("O2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("O27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("U2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("O27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("P2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("P27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("V2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("P27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("R27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("R27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("Q2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("S27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("W2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("S27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("R2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("T27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("X2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("T27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("S2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("U27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("Y2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("U27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
     Sheets("สูตรการคำนวน 1 เฟส").Range("T2").Resize(lng1).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("V27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
    Sheets("สูตรการคำนวน 3 เฟส").Range("Z2").Resize(lng2).Copy
    Sheets("โปรแกรมและตารางแสดงผล").Range("V27").End(xlUp) _
        .Offset(1, 0).PasteSpecial xlPasteValues
 
    Application.CutCopyMode = False
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: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#12

Post by snasui »

:D เราสามารถดักค่าตัวแปร lng1, lng2 ที่ใช้ตรวจสอบว่ามีข้อมูลหรือไม่ หากมีข้อมูล ค่าจะมากกว่า 0 เสมอ และเมื่อค่ามากกว่า 0 ก็ให้ทำงานต่อ

ตัวอย่างตาม Code ด้านล่างครับ

Code: Select all

'other code
With Application
    lng1 = .CountIf(Sheets("สูตรการคำนวน 1 เฟส").Range("G2:G25"), "*?")
    lng2 = .CountIf(Sheets("สูตรการคำนวน 3 เฟส").Range("L2:L25"), "*?")
End With

If lng1 > 0 Then
Sheets("สูตรการคำนวน 1 เฟส").Range("G2").Resize(lng1).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("K27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
 Sheets("สูตรการคำนวน 1 เฟส").Range("L2").Resize(lng1).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("L27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 1 เฟส").Range("J2").Resize(lng1).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("N27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 1 เฟส").Range("O2").Resize(lng1).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("O27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
'other code
End If

If lng2 > 0 Then
Sheets("สูตรการคำนวน 3 เฟส").Range("L2").Resize(lng2).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("K27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 3 เฟส").Range("Q2").Resize(lng2).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("L27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 3 เฟส").Range("R2").Resize(lng2).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("N27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
Sheets("สูตรการคำนวน 3 เฟส").Range("U2").Resize(lng2).Copy
Sheets("โปรแกรมและตารางแสดงผล").Range("O27").End(xlUp) _
    .Offset(1, 0).PasteSpecial xlPasteValues
'other code
End If
djnotza
Member
Member
Posts: 10
Joined: Tue May 20, 2014 12:52 pm

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

#13

Post by djnotza »

ได้แล้วครับ ขอบคุณครับอาจารย์
Post Reply