Page 1 of 1
VBA รวมยอดตัวเลข
Posted: Mon Dec 30, 2013 2:41 pm
by yukioh
สวัสดีครับอาจารย์
รบกวนอาจารย์ ช้วยดู code ให้หน่อยครับ
คือ ผมต้องกานที่จะ sum ตัวเลข แต่ไม่รู่จะทำยังไง
เพาะบางที่ จำนวนข้อมูนอาดมากน้่อย แล้วแต่ และ ตอนนี้มันไม่ทำงานครับ
Re: VBA รวมยอดตัวเลข
Posted: Mon Dec 30, 2013 3:05 pm
by snasui

ตัวอย่าง Code สำหรับการหาค่า Total ซึ่งเป็นยอดรวมสุดท้ายครับ
Code: Select all
Sub test0()
Dim rCond As Range
Dim rCriterea As String
Dim rSum As Range
With Sheets("IA2")
Set rCond = .Range("A16", Range("A16").End(xlDown).Offset(-1, 0))
rCriterea = "*(ACCT*"
Set rSum = rCond.Offset(0, 3)
.Range("a16").End(xlDown).Offset(0, 3).Value = Application.SumIf( _
rCond, rCriterea, rSum)
End With
End Sub
Re: VBA รวมยอดตัวเลข
Posted: Mon Dec 30, 2013 6:41 pm
by yukioh
ผมได้เอา code ของอาจารย์ ใส่ไปแล้วครับ
ปรากดว่า มัน sum ได้แต่ column D อย่างเดียวครับ, column E,F,G,H Etc อื่นฯมันไม่ทำงานครับ
และ ตัว sum มันเป็นตัวเลก ผมอยากให้มันเป็น formula ครับ
รบกวนอาจารย์ ชวยดูให้หน่อยครับ
Re: VBA รวมยอดตัวเลข
Posted: Mon Dec 30, 2013 7:18 pm
by snasui

ตัวอย่างการปรับ Code ตามด้านล่างครับ
Code: Select all
Sub test0()
Dim rAll As Range, r As Range
Dim a() As String, i As Integer
With Sheets("IA2")
Set rAll = .Range("A16", .Range("A16").End(xlDown).Offset(-1, 0))
For Each r In rAll
If InStr(r, "(ACCT") > 0 Then
ReDim Preserve a(i)
a(i) = Replace(r.Offset(0, 3).Address, "$", "")
i = i + 1
End If
Next r
With .Range("a16").End(xlDown).Offset(0, 3)
.Formula = "=Sum(" & Join(a,",") & ")"
.Resize(1, 7).FillRight
End With
End With
End Sub
Re: VBA รวมยอดตัวเลข
Posted: Mon Dec 30, 2013 9:28 pm
by yukioh
ขอบคุณมากครับ อาจารย์
Re:ขอคำอธิบายครับ
Posted: Tue Dec 31, 2013 10:20 am
by pongpang
ขอคำอธิบาย CODEข้างล่าง ครับ
.Formula = "=Sum(" & Join(a,",") & ")"
Re: VBA รวมยอดตัวเลข
Posted: Tue Dec 31, 2013 10:32 am
by snasui
.fomula เป็นการกำหนด Property ให้กับเซลล์เพื่อให้เซลล์นั้นมีสูตรตามที่กำหนด
สูตรที่กำหนดคือ
"=Sum(" & Join(a,",") & ")"
Join คือ Funtion ใน VBA ใช้สำหรับเชื่อมสมาชิก Array เข้าด้วยกัน
Join(a,",")เป็นการเชื่อมสมาชิกของ Array a โดยคั่นด้วยเครื่องหมาย
,
Re: VBA รวมยอดตัวเลข
Posted: Tue Dec 31, 2013 7:03 pm
by pongpang
ผมไม่เคยเห็นมาก่อนเลย ขอบคุณมากครับที่อธิบาย