Excel Expert Training
Home

การใช้ Evaluate กับ Array

โดย คุณอรวีร์

ทดลองใส่เลข 1 ถึง 10 ลงใน A1:A10 แล้ว Run Code . . .

Dim J
MsgBox TypeName(J)
J = Range("A1").Value
MsgBox TypeName(J)
J = Range("A1:A10").Value
MsgBox TypeName(J)

จะพบว่า ตัวแปร J เมื่อยังไม่ถูกกำหนดค่าใดๆให้ จะเก็บข้อมูลแบบ Empty
เมื่อกำหนดค่าเดี่ยวๆให้ J จะเป็นตัวแปรที่เก็บข้อมูลแบบ Double (ค่าตัวเลข 1 ใน Cell A1)
เมื่อกำหนดค่าชุดหลายค่าให้ J จะเป็นตัวแปรที่เก็บข้อมูลแบบ Variant()  ( ค่าตัวเลข {1;2;3;4;5;6;7;8;9;10} )

เสร็จแล้วทดลองเพิ่มเติม Code ต่อไปนี้ลงต่อท้าย Code เดิม แล้ว Run . . .

Range("B1:B10").Value = J
Range("C1:C10").FormulaArray = Evaluate("{1;2;3;4;5;6;7;8;9;10}")
[D1:D10].Value = [{1;2;3;4;5;6;7;8;9;10}]

จะพบว่า J สามารถส่งต่อค่าทั้ง 10 ตัวลงใน B1:B10 ได้

ส่วน 2 บรรทัดสุดท้ายนั้นแสดงให้เห็นลักษณะการเขียนคำสั่ง 2 แบบ ที่ได้ผลแบบเดียวกัน จะสังเกตพบว่า การใช้  .FormulaArray   และ   .Value จะได้ผลไม่ได้เป็นแบบ Array ทั้งคู่

วันนี้พอเท่านี้ก่อนนะคะ ก่อนจบขอฝากตัวอย่างให้ลองศึกษาดูคือทดลอง Run Code . . .

Msgbox [ Sum(If(A1:A10<5, A1:A10, 0)) ]

แล้วทดลองเปลี่ยนเลข 5 เป็นเลขอื่นๆดูว่ายังคำนวณถูกหรือไม่ แล้วจะกลับมาต่อค่ะ
 

ตอนต่อไป ... การใช้ Array Evaluate method - ตอนที่ 2
 

Home

 

www.xls.i.am
www.tpa.or.th/xlsiam    

29/06/2545