วิธีใช้ formular1c1 ใน vba (พร้อมตัวอย่าง)


คุณสามารถใช้คุณสมบัติ FormulaR1C1 ใน VBA เพื่อสร้างการอ้างอิงแบบสัมบูรณ์หรือการอ้างอิงแบบสัมพันธ์กับเซลล์ใดเซลล์หนึ่งบนแผ่นงานได้

มีสองวิธีทั่วไปในการใช้คุณสมบัตินี้:

วิธีที่ 1: ใช้สูตร R1C1 เพื่อสร้างการอ้างอิงแบบสัมบูรณ์

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R1C1*20 "

End Sub

เมื่อคุณเรียกใช้แมโครนี้ เซลล์ C5 จะแสดงผลลัพธ์ของเซลล์ใน แถว 1 และ คอลัมน์ 1 คูณด้วย 20

วิธีที่ 2: ใช้สูตร R1C1 เพื่อสร้างการอ้างอิงแบบสัมพันธ์

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "

End Sub

เมื่อคุณเรียกใช้แมโครนี้ เซลล์ C5 จะแสดงผลลัพธ์ของเซลล์ 4 แถวด้านบน และ 2 คอลัมน์ทางซ้าย คูณด้วย 20

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับแผ่นงาน Excel ที่มีค่า 10 ในเซลล์ A1 :

ตัวอย่างที่ 1: ใช้สูตร R1C1 เพื่อสร้างการอ้างอิงแบบสัมบูรณ์

เราสามารถสร้างมาโครต่อไปนี้เพื่อคูณค่าของเซลล์ใน แถว 1 และ คอลัมน์ 1 ด้วย 20 และแสดงผลลัพธ์ในเซลล์ C5 :

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R1C1*20 "

End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

เราจะเห็นว่า Excel ใช้สูตร =$A$1*20 เพื่อคำนวณผลลัพธ์ในเซลล์ C5

เนื่องจากเราใช้ R1C1 ในสูตรของเราใน VBA เราจึงทำการอ้างอิงแบบสัมบูรณ์ไปยังเซลล์ในแถวแรกและคอลัมน์แรก ซึ่งก็คือเซลล์ A1

ตัวอย่างที่ 2: ใช้สูตร R1C1 เพื่อสร้างการอ้างอิงแบบสัมพันธ์

เราสามารถสร้างแมโครต่อไปนี้เพื่อคูณค่าของเซลล์ที่อยู่ 4 แถวด้านบน และ 2 คอลัมน์ทางด้านซ้าย ของเซลล์ C5 ด้วย 20 และแสดงผลลัพธ์ในเซลล์ C5 :

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "

End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

เราจะเห็นว่า Excel ใช้สูตร =A1*20 เพื่อคำนวณผลลัพธ์ในเซลล์ C5

เนื่องจากเราใช้วงเล็บที่มี R[-4]C[-2] ในสูตรของเราใน VBA เราจึงทำการอ้างอิงแบบสัมพันธ์กับเซลล์ที่อยู่ 4 แถวด้านบนและ 2 คอลัมน์ทางด้านซ้ายของเซลล์ C5 ซึ่งก็คือเซลล์ A1

หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับคุณสมบัติ VBA FormulaR1C1 ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: สูตรง่ายๆ สำหรับ “ถ้าเซลล์มี”
VBA: วิธีนับจำนวนอักขระในสตริง
VBA: วิธีตรวจสอบว่าสตริงมีสตริงอื่นหรือไม่

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *