EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
Sub sheet1()
Dim ws As Worksheet
Dim r As Integer
Set ws = ActiveWorkbook.Worksheets("sheet1")
With ws
For r = 2 To 10
Cells(r, 41).FormulaArray = _
"=IF(OR(R[0]C[+1] = ""no"",COUNTIF(R2C36:R[0]C[-5],R[0]C[-5])=1,MAX(IF(R2C[-5]:R[0]C[-5]=R[0]C[-5],IF(R2C[+1]:R[0]C[+1]<>""no"",R2C[-3]:R[0]C[-3])))=0,MAX(IF((R1C[-5]:R[-1]C[-5]=R[0]C[-5],IF(R1C[+1]:R[-1]C[+1]<>""no"",R1C[-2]:R[-1]C[-2])))=0),0,MAX(IF(R2C[-5]:R[0]C[-5]=R[0]C[-5],IF(R2C[+1]:R[0]C[+1]<>""no"",R2C[-3]:R[0]C[-3])))-MAX(IF(R1C[-5]:R[-1]C[-5]=R[0]C[-5],IF(R1C[+1]:R[-1]C[+1]<>""no"",R1C[-2]:R[-1]C[-2]))))"
Next r
End With
End Sub
Code: Select all
Cells(r, 41).FormulaArray = _
"=IF(OR(R[0]C[+1] = ""no"",COUNTIF(R2C36:R[0]C[-5],R[0]C[-5])=1,MAX(IF(R2C[-5]:R[0]C[-5]=R[0]C[-5],IF(R2C[+1]:R[0]C[+1]<>""no"",R2C[-3]:R[0]C[-3])))=0,MAX(IF((R1C[-5]:R[-1]C[-5]=R[0]C[-5],IF(R1C[+1]:R[-1]C[+1]<>""no"",R1C[-2]:R[-1]C[-2])))=0),0,MAX(IF(R2C[-5]:R[0]C[-5]=R[0]C[-5],IF(R2C[+1]:R[0]C[+1]<>""no"",R2C[-3]:R[0]C[-3])))-MAX(IF(R1C[-5]:R[-1]C[-5]=R[0]C[-5],IF(R1C[+1]:R[-1]C[+1]<>""no"",R1C[-2]:R[-1]C[-2]))))"
ถึงว่า ผมเขียนถูกแล้วแต่มีข้อจำกัดนี่เอง ขอบคุณครับอาจารย์snasui wrote: การเขียน VBA ให้เขียนสูตร Array ใน Excel จะมีข้อจำกัดว่าสามารถใช้อักขระได้เพียง 255 อักขระเท่านั้นครับ
ขอบคุณครับsnasui wrote: Property .ArrayFormula สามารถใช้ได้เพียง R1C1 Style เท่านั้น อ่านเพิ่มเติมที่นี่ครับ https://msdn.microsoft.com/en-us/librar ... e.15).aspx