การนำ VBA macro ไปใช้เป็นวิธีที่มีประสิทธิภาพ ที่เร็วที่สุด และปลอดภัยที่สุด ในการรันการดำเนินการใดๆ ใน Excel ในบทความนี้ เราจะแสดงวิธี แปลงหมายเลขคอลัมน์เป็นตัวอักษรใน Excel โดยใช้ VBA
ดาวน์โหลดสมุดงาน
คุณสามารถดาวน์โหลดสมุดงาน Excel ฝึกหัดฟรีได้ที่นี่
3 วิธีในการนำ VBA ไปใช้เพื่อแปลงหมายเลขคอลัมน์เป็นตัวอักษรใน Excel
ในส่วนนี้ คุณจะได้เรียนรู้วิธีแปลง หมายเลขคอลัมน์เฉพาะเป็นตัวอักษร, หมายเลขคอลัมน์ที่ผู้ใช้ป้อนเป็นตัวอักษร และสร้าง UDF (User-Defined Function) เพื่อแปลงหมายเลขคอลัมน์เป็นตัวอักษร ใน Excel ด้วย VBA
1. VBA เพื่อแปลงหมายเลขคอลัมน์เฉพาะเป็นตัวอักษรใน Excel
ขั้นตอนในการแปลง หมายเลขคอลัมน์เฉพาะเป็นตัวอักษร ใน Excel ด้วย VBA มีดังนี้
ขั้นตอน:
- กด Alt + F11 บนคีย์บอร์ด หรือไปที่แท็บ Developer -> Visual Basic เพื่อเปิด Visual Basic Editor

- ในหน้าต่างโค้ดที่ปรากฏ จากแถบเมนู คลิก Insert -> Module

- คัดลอกโค้ดต่อไปนี้และวางลงในหน้าต่างโค้ด
Sub ColNumToLetter() Dim ColNumber As Long Dim ColLetter As String 'Input Column Number ColNumber = 200 'Convert To Column Letter ColLetter = Split(Cells(1, ColNumber).Address, "$")(1) 'Display Result MsgBox "Column " & ColNumber & " = Column " & ColLetter End Sub
โค้ดของคุณพร้อมที่จะรันแล้ว

โค้ดนี้จะแปลง หมายเลขคอลัมน์ 200 เป็น ที่อยู่ตัวอักษร ที่เกี่ยวข้อง
- กด F5 บนคีย์บอร์ด หรือจากแถบเมนูเลือก Run -> Run Sub/UserForm คุณยังสามารถคลิกที่ ไอคอน Play ขนาดเล็ก ในแถบเมนูย่อยเพื่อรันแมโครได้

คุณจะได้กล่องข้อความป๊อปอัปของ Microsoft Excel แสดงที่อยู่ตัวอักษร (GR) ของหมายเลขคอลัมน์ (เช่น 200) ที่คุณใส่ไว้ในโค้ด

อ่านเพิ่มเติม: VBA ใช้ Range ตามหมายเลขคอลัมน์ใน Excel (4 วิธี)
บทความที่คล้ายกัน
- [แก้แล้ว] Excel แสดงหมายเลขคอลัมน์แทนตัวอักษร (2 วิธีแก้)
- วิธีแปลงตัวอักษรคอลัมน์เป็นแผนภูมิหมายเลขใน Excel (4 วิธี)
2. VBA เพื่อสลับหมายเลขคอลัมน์เป็นตัวอักษรด้วยฟังก์ชันที่ผู้ใช้กำหนด (UDF) ใน Excel
ขั้นตอนในการสลับ หมายเลขคอลัมน์เป็นตัวอักษรด้วย UDF ใน Excel ด้วย VBA มีดังนี้
ขั้นตอน:
- เหมือนเดิม เปิด Visual Basic Editor จากแท็บ Developer และ Insert Module ในหน้าต่างโค้ด
- ในหน้าต่างโค้ด คัดลอกโค้ดต่อไปนี้และวางไว้
Public Function NumToLtr(ColNum) NumToLtr = Split(Cells(1, ColNum).Address, "$")(1) End Function

นี่ไม่ใช่ Sub Procedure สำหรับโปรแกรม VBA ที่จะรัน นี่คือการสร้าง User Defined Function (UDF) ดังนั้น หลังจากเขียนโค้ด แทนที่จะคลิกปุ่ม Run จากแถบเมนู ให้คลิก Save
- ตอนนี้กลับไปที่แผ่นงานที่สนใจ และเขียนฟังก์ชันที่คุณเพิ่งสร้างด้วยโค้ด VBA (Function NumToLtr ในบรรทัดแรกของโค้ด) และภายในวงเล็บของฟังก์ชัน NumToLtr ใส่ หมายเลขอ้างอิงเซลล์ ที่คุณต้องการแปลงเป็นตัวอักษร (ในกรณีของเรา เราใส่ เซลล์ B5 ภายในวงเล็บ)
ดังนั้น สูตรสุดท้ายของเราคือ
=NumToLtr(B5)
- กด Enter

คุณจะได้ที่อยู่ตัวอักษรที่เกี่ยวข้อง (A) ของหมายเลขคอลัมน์ (1) ในชุดข้อมูลของคุณ
- ตอนนี้ลากแถวลงด้วย Fill Handle เพื่อนำ UDF ไปใช้กับเซลล์ที่เหลือเพื่อแปลงเป็นตัวอักษร

พร้อมคำสั่ง GoTo
ขั้นตอนข้างต้นยังสามารถทำได้ด้วยคำสั่ง GoTo
- โค้ด VBA เพื่อแปลงหมายเลขคอลัมน์เป็นตัวอักษรด้วยคำสั่ง GoTo คือ
Public Function Num_Letter(ByVal iColNum As Integer) As String Dim SLetter As String On Error GoTo iError Num_Letter = Left(Cells(1, iColNum).Address(False, False), _ Len(Cells(1, iColNum).Address(False, False)) - 1) Exit Function iError: Call MsgBox(Err.Number & " - " & Err.Description) End Function

- ตอนนี้ ตามที่แสดงด้านบน เรียก UDF ในชุดข้อมูล ใส่หมายเลขอ้างอิงเซลล์ เป็นอาร์กิวเมนต์ กด Enter และ ลาก แถวเพื่อ แปลงหมายเลขคอลัมน์เป็นตัวอักษร ใน Excel ด้วยคำสั่ง GoTo ใน VBA

พร้อมลูป Do-While
Do-While Loop เป็นอีกวิธีหนึ่งในการแปลงหมายเลขคอลัมน์เป็นตัวอักษรใน VBA Excel
- โค้ด VBA เพื่อแปลงหมายเลขคอลัมน์เป็นตัวอักษรด้วยลูป Do-While คือ
Function NumberToLetter(iCol As Long) As String Dim a As Long Dim b As Long a = iCol NumberToLetter = "" Do While iCol > 0 a = Int((iCol - 1) / 26) b = (iCol - 1) Mod 26 NumberToLetter = Chr(b + 65) & NumberToLetter iCol = a Loop End Function

- เช่นเดียวกัน เรียก UDF ในชุดข้อมูล ใส่หมายเลขอ้างอิงเซลล์ เป็นอาร์กิวเมนต์ กด Enter และ ลาก แถวเพื่อ แปลงหมายเลขคอลัมน์เป็นตัวอักษร ใน Excel ด้วยลูป Do-While ใน VBA

อ่านเพิ่มเติม: Excel VBA: กำหนด Range โดยแถวและหมายเลขคอลัมน์ (3 ตัวอย่าง)
3. VBA เพื่อเปลี่ยนหมายเลขคอลัมน์เป็นตัวอักษรจากข้อมูลนำเข้าของผู้ใช้ใน Excel
ขั้นตอนในการเปลี่ยน หมายเลขคอลัมน์เป็นตัวอักษรจากข้อมูลนำเข้าของผู้ใช้ ใน Excel ด้วย VBA มีดังนี้
ขั้นตอน:
- เหมือนเดิม เปิด Visual Basic Editor จากแท็บ Developer และ Insert Module ในหน้าต่างโค้ด
- ในหน้าต่างโค้ด คัดลอกโค้ดต่อไปนี้และวางไว้
Sub GetNumberFromUser() Dim ColNumber As Long Dim ColLetter As String 'User Input: Column Number ColNumber = InputBox("Please Enter a Column Number") 'Convert the user-entered Column Number To Column Letter ColLetter = Split(Cells(1, ColNumber).Address, "$")(1) 'Display the Result MsgBox "Column Number: " & ColNumber & _ " = Column Letter: " & ColLetter End Sub
โค้ดของคุณพร้อมที่จะรันแล้ว

- Run แมโคร
- กล่องข้อความป๊อปอัปของ Microsoft Excel จะปรากฏ ขอหมายเลขคอลัมน์ เขียน หมายเลขคอลัมน์ ที่คุณต้องการแปลงเป็นตัวอักษรในกล่อง แล้วกด OK

คุณจะได้ผลลัพธ์ที่แปลงแล้วของหมายเลขคอลัมน์ (เช่น 200) ที่คุณใส่ ไปยังที่อยู่ตัวอักษรที่เกี่ยวข้อง (GR)

อ่านเพิ่มเติม: VBA ใช้ Range ตามหมายเลขคอลัมน์ใน Excel (4 วิธี)
สรุป
บทความนี้แสดงวิธีแปลงหมายเลขเป็นตัวอักษรใน Excel ด้วย VBA หวังว่าบทความนี้จะเป็นประโยชน์มากสำหรับคุณ โปรดรู้สึกว่าสบายใจที่จะถามหากคุณมีคำถามเกี่ยวกับหัวข้อนี้
บทความที่เกี่ยวข้อง
- วิธีเปลี่ยนชื่อคอลัมน์จาก ABC เป็น 1 2 3 ใน Excel
- วิธีแปลงตัวอักษรคอลัมน์เป็นแผนภูมิหมายเลขใน Excel (4 วิธี)
- วิธีอ้างอิงเซลล์ตามแถวและหมายเลขคอลัมน์ใน Excel (4 วิธี)
- Excel VBA: เลือกหลายคอลัมน์ (3 วิธี)
- วิธีคืนค่าหมายเลขคอลัมน์ของการจับคู่ใน Excel (5 วิธีที่มีประโยชน์)