Page 1 of 1

รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Wed Sep 17, 2014 9:31 am
by seeper
Range("D2").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=SUM(R[4]C[4]:R[59]C[4])"



เรียนอาจารย์ครับ

จากตัวอย่างข้างบนผมต้องการให้โปรแกรมทำการรวมค่าข้อมูลจากตัวแรกที่มีข้อมูลในที่นี้คือ R[4]C[4] ถึงตัวสุดท้ายที่มีข้อมูลซึ่งต้องการให้โปรแกรมหาตัวสุดท้ายเอง

อาจารย์ช่วยด้วยครับ

ขอบคุณครับ :) :)

Re: รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Wed Sep 17, 2014 12:04 pm
by snasui
:D ลองปรับเป็นด้านล่างครับ

ActiveCell.FormulaR1C1 = "=SUM(R[4]C[4]:R[" & Range("d" & Rows.Count).End(xlUp).Row & "]C[4])"

Re: รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Wed Sep 17, 2014 12:51 pm
by seeper
แล้วถ้าจากข้างบน เราไม่ทราบช่วง R[4]C[4]:R[59]C[4] แต่ต้องการให้เลือกช่วงตัวแรกสุดจนถึงตัวสุดท้ายโดยยึดตามช่วง ข้อมูล column ก่อนหน้าอาจารย์ช่วยปรับ code ด้วยครับ

ขอบคุณครับ :D :D

Re: รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Wed Sep 17, 2014 2:20 pm
by snasui
:D แนบภาพ แนบไฟล์มาด้วย จะได้เข้าใจตำแหน่งตรงกันว่าต้องการให้นำตำแหน่งใดมาใช้ในสูตรครับ

Re: รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Wed Sep 17, 2014 2:41 pm
by seeper
ผมขอคำแนะนำ เลือกช่วงของสองชุดข้อมูลนะครับ

ชุดข้อมูลแรก ผมต้องการให้โปรแกรมเลือกช่วงใน column B โดยเราไม่รู้จุดเริ่มต้นและจุดสิ้นสุดในช่วง Column B แต่ให้อ้างอิงจาก Column A (ข้อมูลตัวแรกสุดของ Column B คือข้อมูลตัวแรกที่มีค่าของ Column A และข้อมูลชุดสุดท้ายของ Column B คือข้อมูลตัวสุดท้ายของ Column A )

ส่วนข้อมูลชุดที่ 2 การเลือกช่วงข้อมูลจะคล้ายกับข้อมูลชุดแรกแต่เปลี่ยนเป็น ข้อมูลตัวแรกที่เลือกของ Column E จะเป็นข้อมูลตัวสุดท้ายของ Column D และข้อมูลตัวสุดท้ายของ Column E จะเป็นข้อมูลตัวสุดท้ายของ Column A ครับ


อาจารย์กช่วยทำ code เลือกช่วงให้ผมด้วยครับ :flw: :flw: :flw:

Re: รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Wed Sep 17, 2014 4:50 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Dim range01 As String
Dim range02 As String
With ActiveSheet
    range01 = .Range("a6", .Range("a" & .Rows.Count).End(xlUp)).Offset(0, 1).Address(0, 0)
    range02 = .Range(.Range("d" & .Rows.Count).End(xlUp).Offset(0, 1), _
        .Range("e" & .Rows.Count).End(xlUp)).Address(0, 0)
End With
ActiveCell.Formula = "=Sum(" & range01 & ")"
ActiveCell.Offset(0, 1).Formula = "=Sum(" & range02 & ")"
'Other code

Re: รวมข้อมูลจากแถวแรกถึงแถวสุดท้ายโดยอัตโนมัติ

Posted: Fri Sep 19, 2014 2:04 pm
by seeper
ขอบคุณครับ