Page 1 of 1

สอบถาม SumIfs ใน VBA ครับ

Posted: Sun Dec 03, 2017 12:04 pm
by lnongkungl
จากไฟล์แนบครับ ผมต้องการนำข้อมูลจาก sheet import ที่กรอก และจะ sumifs ไปยัง sheet stock ครับ แต่มัน error ครับ รบกวนชี้แนะด้วยครับ ทุกท่าน

Code: Select all

Sub save()
Dim pot As Range
Dim sent As Double

Set pot = Range("B2", Range("B" & Rows.Count).End(xlUp))
Set sent = Worksheets("Stock").Range("E2:E18")

sent = Application.WorksheetFunction.SumIfs(pot, pot.Offset(0, -1), sent.Offset(0, -2))

End Sub

Re: สอบถาม SumIfs ใน VBA ครับ

Posted: Sun Dec 03, 2017 4:13 pm
by puriwutpokin
ลองดูนะครับ

Code: Select all

Sub save()
Dim pot As Range
Dim sent As Range
With Sheets("stock")
For i = 2 To .Range("A" & .Rows.Count).End(xlUp) + 1
Set pot = Range("B2", Range("B" & Rows.Count).End(xlUp))
Set sent = Worksheets("Stock").Range("E" & i)
sent = Application.WorksheetFunction.SumIf(pot.Offset(0, -1), sent.Offset(0, -2), pot)
Next
End With
End Sub

Re: สอบถาม SumIfs ใน VBA ครับ

Posted: Wed Dec 06, 2017 11:01 am
by lnongkungl
ขอบคุณครับ เดี๋ยวลองเอาไป ปรับใช้ดู ได้ผลยังไง เดี๋ยวจะมารายงานครับ

Re: สอบถาม SumIfs ใน VBA ครับ

Posted: Sat Dec 16, 2017 4:43 pm
by lnongkungl
มาแล้วครับ หลังจากที่มัวแต่ไปทำงานอื่น

code ที่ปรับให้ให้ได้ครับ แต่ผมลองเอาไปใส่ไฟล์จริง กลับไม่มีอะไรเกิดขึ้นเลย หรือผมปรับอะไรผิด รบกวนช่วยแนะนำทีครับ
ผมต้องการเอาข้อมูล หน้ารับสินค้าที่ปุ่ม save ไปใส่หน้า Stock ที่ คอลัม G (รับเข้า) แต่พอกด save แล้ว มันไม่มีอะไรเกิดขึ้นเลยครับ
ไม่ error ไม่อะไรเลย นิ่งๆ เลย

Code: Select all

Sub save()
Dim pot As Range
Dim sent As Range
With Sheets("stock")
For i = 5 To .Range("B" & .Rows.Count).End(xlUp) + 1
Set pot = Range("C5", Range("C" & Rows.Count).End(xlUp))
Set sent = Worksheets("Stock").Range("G" & i)
sent = Application.WorksheetFunction.SumIf(pot.Offset(0, -1), sent.Offset(0, -4), pot)
Next
End With
End Sub

Re: สอบถาม SumIfs ใน VBA ครับ

Posted: Sat Dec 16, 2017 8:00 pm
by puriwutpokin
lnongkungl wrote:มาแล้วครับ หลังจากที่มัวแต่ไปทำงานอื่น

code ที่ปรับให้ให้ได้ครับ แต่ผมลองเอาไปใส่ไฟล์จริง กลับไม่มีอะไรเกิดขึ้นเลย หรือผมปรับอะไรผิด รบกวนช่วยแนะนำทีครับ
ผมต้องการเอาข้อมูล หน้ารับสินค้าที่ปุ่ม save ไปใส่หน้า Stock ที่ คอลัม G (รับเข้า) แต่พอกด save แล้ว มันไม่มีอะไรเกิดขึ้นเลยครับ
ไม่ error ไม่อะไรเลย นิ่งๆ เลย

Code: Select all

Sub save()
Dim pot As Range
Dim sent As Range
With Sheets("stock")
For i = 5 To .Range("B" & .Rows.Count).End(xlUp) + 1
Set pot = Range("C5", Range("C" & Rows.Count).End(xlUp))
Set sent = Worksheets("Stock").Range("G" & i)
sent = Application.WorksheetFunction.SumIf(pot.Offset(0, -1), sent.Offset(0, -4), pot)
Next
End With
End Sub
ปรับเป็น

Code: Select all

Sub save()
Dim pot As Range
Dim sent As Range
With Sheets("stock")
For i = 4 To .Range("B1", .Range("B4").End(xlDown)).Rows.Count
Set pot = Range("C5", Range("C" & Rows.Count).End(xlUp))
Set sent = Worksheets("Stock").Range("G" & i)
sent = Application.WorksheetFunction.SumIf(pot.Offset(0, -1), sent.Offset(0, -4), pot)
Next
End With
End Sub

Re: สอบถาม SumIfs ใน VBA ครับ

Posted: Mon Dec 18, 2017 10:54 am
by lnongkungl
ได้แล้วครับ ขอบคุณครับ แต่ผมรบกวน อธิบายความต่างให้ทีครับ

For i = 5 To .Range("B" & .Rows.Count).End(xlUp) + 1 = Row ที่ 5 ใน column B นับขึ้น +1 ถูกต้องมั้ยครับ
กับ
For i = 4 To .Range("B1", .Range("B4").End(xlDown)).Rows.Count = Row 4 แล้วทำไมต้องเป็น B1 ครับ แล้วก็ B4 ซึ่งข้อมูล เริ่มต้นที่ B5

รบกวนอธิบายเพิ่มเติมหน่อยนะครับ ผมไม่ค่อยเข้าใจ จะได้กระจ่างและไปปรับใช้ต่อไปครับ

ขอบคุณครับ