Page 1 of 1

เราสามารถใช้คำสั่ง for next ในการเขียน function vba code ได้

Posted: Sat Aug 30, 2014 1:46 am
by Sasithorn_Sophia
Public Function test1()
Dim s As Worksheet
Set s = Excel.ActiveSheet
Range("h9").Formula = "=sum( " & Range("b9:f9").Address(False, False) & " ) "
Range("h10").Formula = "=sum( " & Range("b10:f10").Address(False, False) & " ) "
Range("h11").Formula = "=sum( " & Range("b11:f11").Address(False, False) & " ) "
Range("h12").Formula = "=sum( " & Range("b12:f12").Address(False, False) & " ) "
Range("h13").Formula = "=sum( " & Range("b13:f13").Address(False, False) & " ) "
Range("b22").Formula = "=sum( " & Range("b9:b13").Address(False, False) & " ) "
Range("c22").Formula = "=sum( " & Range("c9:c13").Address(False, False) & " ) "
Range("d22").Formula = "=sum( " & Range("d9:d13").Address(False, False) & " ) "
Range("e22").Formula = "=sum( " & Range("e9:e13").Address(False, False) & " ) "
Range("f22").Formula = "=sum( " & Range("f9:f13").Address(False, False) & " ) "
End Function
ถ้าคำสั่งเป็นแบบนี้เราสามารถนำไปเขียนเป็นคำสั่ง for next ให้มันวนลูปได้มั้ยค่ะ ควรเริ่มเขียนยังไงดีค่ะ

Re: เราสามารถใช้คำสั่ง for next ในการเขียน function vba code

Posted: Sat Aug 30, 2014 9:37 am
by snasui
:D การโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและนำไปทดสอบ ดูจากกระทู้นี้ครับ viewtopic.php?f=3&t=1187

ควรแนบไฟล์ตัวอย่างมาด้วยจะได้เห็นว่าข้อมูลเป็นอย่างไร ต้องการคำตอบเป็นอย่างไร

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

Code: Select all

Dim rAll As Range, rAll1 As Range
Dim r As Range, r1 As Range
Set rAll = Range("h9:h13")
Set rAll1 = Range("b22:f22")
For Each r In rAll
    r.Value = Application.Sum(r.Offset(0, -6).Resize(1, 5))
Next r
For Each r1 In rAll1
    r1.Value = Application.Sum(r1.Offset(-13, 0).Resize(5))
Next

คืออยากให้ค่าออกมาอยูู่ในรูป =sum(i,j) ประมานนี้อ่ะค่ะ

Posted: Mon Sep 01, 2014 1:20 pm
by Sasithorn_Sophia
อยากให้code ออกมาในรูป for next อ่ะค่ะ
Public Function test1()
Dim s As Worksheet
Set s = Excel.ActiveSheet
Range("h9").Formula = "=Sum(b9:f9)"
Range("h10").Formula = "=sum( " & Range("b10:f10").Address(False, False) & " ) "
Range("h11").Formula = "=sum( " & Range("b11:f11").Address(False, False) & " ) "
Range("h12").Formula = "=sum( " & Range("b12:f12").Address(False, False) & " ) "
Range("h13").Formula = "=sum( " & Range("b13:f13").Address(False, False) & " ) "
Range("b22").Formula = "=sum( " & Range("b9:b13").Address(False, False) & " ) "
Range("c22").Formula = "=sum( " & Range("c9:c13").Address(False, False) & " ) "
Range("d22").Formula = "=sum( " & Range("d9:d13").Address(False, False) & " ) "
Range("e22").Formula = "=sum( " & Range("e9:e13").Address(False, False) & " ) "
Range("f22").Formula = "=sum( " & Range("f9:f13").Address(False, False) & " ) "
End Function
ขอความกรุณาอีกรอบนะค่ะ

Re: เราสามารถใช้คำสั่ง for next ในการเขียน function vba code

Posted: Mon Sep 01, 2014 5:11 pm
by snasui
:D อ่านที่ผมตอบและโพสต์ให้แสดงเป็น Code ด้วย

สำหรับที่ผมตอบไปไม่ได้คำใตอบอย่างไร :?: ช่วยแนบไฟล์พร้อม Code และแสดงให้เห็นว่าปัญหาคืออะไร หากได้คำตอบแล้วไม่จำเป็นต้องเขียนในลักษณะอื่น

หากต้องการก็ให้พยายามเขียนในรูปแบบที่ต้องการมาเอง ติดแล้วค่อยถามกันต่อครับ

Re: เราสามารถใช้คำสั่ง for next ในการเขียน function vba code

Posted: Tue Sep 02, 2014 1:39 am
by Sasithorn_Sophia
ขอบคุณมากค่ะ