โดย คุณอรวีร์
ทดลองใส่เลข 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 |