ในบทความนี้ ผมจะแสดงให้คุณเห็นว่าคุณสามารถใช้ VBA . ได้อย่างไร ช่วงที่มีหมายเลขแถวตัวแปรใน Excel คุณจะได้เรียนรู้การทำงานกับ VBA range เพื่อเลือกช่วงของเซลล์ แทรกตัวเลขลงในช่วงของเซลล์ ดำเนินการทางคณิตศาสตร์ในช่วงของเซลล์ และระบายสีช่วงของเซลล์ ทั้งหมดด้วยหมายเลขแถวที่แปรผัน
รหัส VBA เพื่อกำหนดช่วงด้วยหมายเลขแถวตัวแปรใน Excel (มุมมองด่วน)
Sub Range_with_Variable_Row_Number()
First_Cell = InputBox("Enter the First Cell of the Range: ")
Row_Number = Str(Range(First_Cell).Row)
Number_of_Rows = InputBox("Enter the Total Number of Rows of the Range: ")
Set Rng = Range(First_Cell & ":" & Mid(First_Cell, 1, Len(First_Cell) - Len(Row_Number) + 1) & Mid(Str(Int(Number_of_Rows) + Int(Row_Number) - 1), 2, 10))
End Sub
⧭ คำอธิบายของรหัส:
- โค้ดรับอินพุต 2 รายการ คือเซลล์แรกของช่วงที่เรียกว่า First_Cell และจำนวนแถวตัวแปรทั้งหมดในช่วงที่เรียกว่า Number_of_Rows .
- จากนั้นจะสร้างช่วงของแถวที่เรียกว่า Rng โดยเริ่มจาก First_Cell ถึงจำนวนแถวทั้งหมดที่คุณต้องการ
- ตัวอย่างเช่น ถ้า First_Cell . ของคุณ คือ B4 และ Number_of_Rows คือ 10 จากนั้นเอาต์พุต Rng คือ B4:B13 .
- ใช้การอ้างอิงเซลล์สัมพัทธ์ .เสมอ ของ First_Cell ไม่ใช่ สัมบูรณ์ หรือ การอ้างอิงเซลล์แบบผสม (ใช้ B4 ไม่ใช่ $B$4 หรือ $B4 )
4 ตัวอย่างการใช้ช่วง VBA ที่มีหมายเลขแถวตัวแปรใน Excel (มุมมองด่วน)
เรามีชุดข้อมูลที่มี ชื่อ และ เงินเดือน ของพนักงานบางคนของบริษัท Jupyter Group
วันนี้เราจะพยายามทำงานกับช่วงที่มีหมายเลขแถวตัวแปรโดยใช้ VBA ในชุดข้อมูลนี้
1. เลือกช่วงที่มีหมายเลขแถวตัวแปรด้วย VBA ใน Excel
ก่อนอื่น มาพัฒนา มาโคร . กัน เพื่อเลือกช่วงที่มีหมายเลขแถวตัวแปรโดยใช้ VBA .
มาเลือกชื่อ 5ที่ 1 กันเถอะ พนักงาน
คุณสามารถใช้ โค้ด VBA . ต่อไปนี้ เพื่อจุดประสงค์นี้:
⧭ รหัส VBA:
Sub Select_Range()
First_Cell = InputBox("Enter the First Cell to Select: ")
Row_Number = Str(Range(First_Cell).Row)
Number_of_Rows = InputBox("Enter the Number of Rows to Select: ")
Rng = First_Cell & ":" & Mid(First_Cell, 1, Len(First_Cell) - Len(Row_Number) + 1) & Mid(Str(Int(Number_of_Rows) + Int(Row_Number) - 1), 2, 10)
Range(Rng).Select
End Sub
⧭ ผลลัพธ์:
เรียกใช้มาโคร (Select_Range ). คุณจะได้รับช่องใส่ของ 2 ช่อง
ที่ 1 กล่องจะขอให้คุณป้อนเซลล์ที่ 1 ของช่วงที่คุณต้องการเลือก นี่คือ B4 , เซลล์ที่มีพนักงานคนที่ 1
คลิก ตกลง . ช่องป้อนข้อมูลที่ 2 จะถามจำนวนแถวที่คุณต้องการเลือก นี่ 5 .
คลิกอีกครั้งตกลง . แล้วคุณจะได้ชื่อ 5 first ตัวแรก พนักงานที่เลือกในชุดข้อมูลของคุณ
อ่านเพิ่มเติม: วิธีรับหมายเลขแถวจากช่วงด้วย Excel VBA (9 ตัวอย่าง)
2. แทรกตัวเลขในช่วงที่มีตัวเลขแถวตัวแปรใน Excel
คุณยังสามารถแทรกตัวเลขในช่วงที่มีตัวเลขแถวตัวแปรด้วย VBA ใน Excel
ใส่ได้ทั้งตัวเลขคงที่และชุดตัวเลข
มาเป็นอันดับ 1 5 พนักงานตั้งแต่ 1 ถึง 5 .
นั่นคือ แทรกชุดของ 1 ถึง 5 เหลือชื่อที่ 1 5 พนักงาน (A4:A8 )
คุณสามารถใช้ โค้ด VBA . ต่อไปนี้ เพื่อจุดประสงค์นี้:
⧭ รหัส VBA:
Sub Insert_Numbers()
First_Cell = InputBox("Enter the First Cell to Insert Number: ")
Row_Number = Str(Range(First_Cell).Row)
Number_of_Rows = InputBox("Enter the Total Number of Rows to Insert Numbers: ")
Set Rng = Range(First_Cell & ":" & Mid(First_Cell, 1, Len(First_Cell) - Len(Row_Number) + 1) & Mid(Str(Int(Number_of_Rows) + Int(Row_Number) - 1), 2, 10))
Series_or_Fixed = Int(InputBox("Enter 1 to Enter a Series of Numbers: " + vbNewLine + vbNewLine + "OR" + vbNewLine + vbNewLine + "Enter 2 to Enter a Fixed Number: "))
If Series_or_Fixed = 1 Then
First_Number = Int(InputBox("Enter the First Number: "))
Increment = Int(InputBox("Enter the Increment: "))
For i = 1 To Rng.Rows.Count
Rng.Cells(i, 1) = First_Number + (i - 1) * Increment
Next i
ElseIf Series_or_Fixed = 2 Then
Number = Int(InputBox("Enter the Fixed Number: "))
For i = 1 To Rng.Rows.Count
Rng.Cells(i, 1) = Number
Next i
End If
End Sub
⧭ ผลลัพธ์:
เรียกใช้ มาโคร . นี้ (Insert_Numbers ). คุณจะได้รับกล่องอินพุตสองสามกล่อง
ที่ 1 กล่องจะขอให้คุณป้อนเซลล์แรกเพื่อแทรกตัวเลข นี่คือ A4 .
คลิก ตกลง . ที่ 2 กล่องจะขอให้คุณป้อนจำนวนแถวทั้งหมดที่จะแทรกตัวเลข
นี่ 5 .
ที่ 3 กล่องจะถามคุณว่าคุณต้องการชุดตัวเลขหรือตัวเลขคงที่
ป้อน 1 สำหรับชุดตัวเลข
ป้อน 2 สำหรับหมายเลขที่แน่นอน
ที่นี่ฉันต้องการชุดตัวเลข เลยเข้า 1 .
ที่ 4 กล่องจะถามคุณหมายเลขแรกของซีรีส์ ฉันต้องการซีรีย์ 1 ถึง 5 . ดังนั้นฉันจึงเข้าสู่ 1 .
กล่องสุดท้ายจะขอให้คุณป้อนส่วนเพิ่ม ในชุดของ 1, 2, 3, 4, 5, มันคือ 1 .
คลิก ตกลง . และคุณจะได้ชุด 1 ถึง 5 อยู่ในช่วง A4:A8 .
อ่านเพิ่มเติม: วิธีใช้ช่วงที่มีตัวเลขแถวตัวแปรใน Excel
การอ่านที่คล้ายกัน
- VBA เพื่อใช้ช่วงตามหมายเลขคอลัมน์ใน Excel (4 วิธี)
- วิธีการเลือกช่วงตามค่าของเซลล์ VBA (7 วิธี)
- ใช้ออบเจ็กต์ช่วงของ VBA ใน Excel (5 คุณสมบัติ)
- VBA เพื่อตั้งค่าช่วงใน Excel (7 ตัวอย่าง)
- วิธีค้นหาหมายเลขแถวโดยใช้ VBA ใน Excel (4 Macros)
3. ดำเนินการทางคณิตศาสตร์ในช่วงที่มีตัวเลขแถวตัวแปรใน Excel
ต่อไป เราจะพัฒนา มาโคร เพื่อดำเนินการทางคณิตศาสตร์ในช่วงที่มีหมายเลขแถวตัวแปร
ตัวอย่างเช่น ลองคิดดูสักครู่ว่าหัวหน้ากลุ่ม Jupyter ต้องการเพิ่มเงินเดือนพนักงาน 5 คนแรก $10,000 .
เราจะพัฒนา มาโคร เพื่อบรรลุวัตถุประสงค์ของเขา
คุณสามารถใช้ โค้ด VBA . ต่อไปนี้ :
⧭ รหัส VBA:
Sub Mathematical_Operation()
First_Cell = InputBox("Enter the First Cell to Perform Operation: ")
Row_Number = Str(Range(First_Cell).Row)
Number_of_Rows = InputBox("Enter the Total Number of Rows to Perform Operation: ")
Set Rng = Range(First_Cell & ":" & Mid(First_Cell, 1, Len(First_Cell) - Len(Row_Number) + 1) & Mid(Str(Int(Number_of_Rows) + Int(Row_Number) - 1), 2, 10))
Operation = Int(InputBox("Enter the Operation to Perform: " + vbNewLine + "Enter 1 for Addition: " + vbNewLine + "Enter 2 for Subtraction: " + vbNewLine + "Enter 3 for Multiplication: " + vbNewLine + "Enter 4 for Division: "))
Operations = Array("Add", "Subtract", "Multiply", "Divide")
Number = Int(InputBox("Enter the Number to " + Operations(Operation - 1) + ": "))
For i = 1 To Rng.Rows.Count
If Operation = 1 Then
Rng.Cells(i, 1) = Rng.Cells(i, 1).Value + Number
End If
If Operation = 2 Then
Rng.Cells(i, 1) = Rng.Cells(i, 1).Value - Number
End If
If Operation = 3 Then
Rng.Cells(i, 1) = Rng.Cells(i, 1).Value * Number
End If
If Operation = 4 Then
Rng.Cells(i, 1) = Rng.Cells(i, 1).Value / Number
End If
Next i
End Sub
⧭ ผลลัพธ์:
เรียกใช้ มาโคร (คณิตศาสตร์_การดำเนินการ ). คุณจะได้รับ 4 ช่องใส่ของ
ที่ 1 กล่องจะขอให้คุณเข้าสู่เซลล์แรกเพื่อดำเนินการตามปกติ
ในตัวอย่างนี้ เป็นเงินเดือนของพนักงานคนที่ 1 เซลล์ C4 .
กล่องที่ 2 จะถามคุณถึงจำนวนแถวทั้งหมดที่จะดำเนินการ
ช่องที่ 3 จะขอให้คุณเข้าสู่การดำเนินการที่คุณต้องการดำเนินการ
ป้อน 1 เพิ่มเติม
ป้อน 2 สำหรับการลบ
3 สำหรับการคูณ
และ 4 สำหรับดิวิชั่น
ที่นี่ฉันต้องการการเพิ่ม เลยเข้า 1 .
สุดท้าย ที่ 4 กล่องจะขอให้คุณป้อนหมายเลขที่จะเพิ่ม ที่นี่ฉันป้อน 10000 .
คลิก ตกลง . และคุณจะพบว่าเงินเดือนของพนักงาน 5 คนแรกเพิ่มขึ้น $10,000 .
อ่านเพิ่มเติม: ค้นหาสตริงในคอลัมน์และส่งคืนหมายเลขแถวใน Excel (7 วิธี)
4. เซลล์สีของช่วงที่มีตัวเลขแถวตัวแปรใน Excel
สุดท้าย เราจะพัฒนา มาโคร เพื่อระบายสีเซลล์ของช่วงด้วยหมายเลขแถวตัวแปรใน Excel
มาระบายสีชื่อพนักงานห้าคนแรกให้เป็นสีแดงกันเถอะ
คุณสามารถใช้ โค้ด VBA . ต่อไปนี้ :
⧭ รหัส VBA:
Sub Color_Range()
First_Cell = InputBox("Enter the First Cell to Color: ")
Row_Number = Str(Range(First_Cell).Row)
Number_of_Rows = InputBox("Enter the Total Number of Rows to Color: ")
Set Rng = Range(First_Cell & ":" & Mid(First_Cell, 1, Len(First_Cell) - Len(Row_Number) + 1) & Mid(Str(Int(Number_of_Rows) + Int(Row_Number) - 1), 2, 10))
Color_Code = Int(InputBox("Enter the Color Code: " + vbNewLine + "Enter 3 for Color Red." + vbNewLine + "Enter 5 for Color Blue." + vbNewLine + "Enter 6 for Color Yellow." + vbNewLine + "Enter 10 for Color Green."))
Background_or_Text = Int(InputBox("Enter 1 to Color the Whole Background of the Cells: " + vbNewLine + vbNewLine + "Or" + vbNewLine + vbNewLine + "Enter 2 to Color Only the Texts: "))
For i = 1 To Rng.Rows.Count
If Background_or_Text = 1 Then
Rng(i, 1).Interior.ColorIndex = Color_Code
ElseIf Background_or_Text = 2 Then
Rng.Cells(i, 1).Characters(1, Len(Rng.Cells(i, 1))).Font.ColorIndex = Color_Code
End If
Next i
End Sub
⧭ ผลลัพธ์:
เรียกใช้ มาโคร (Color_Range ). คุณจะได้รับช่องใส่ของ 4 ช่อง
ที่ 1 กล่องจะขอให้คุณป้อนเซลล์แรกเพื่อระบายสี
นี่คือพนักงานคนแรก เซลล์ B4
ที่ 2 กล่องจะถามถึงจำนวนแถวที่จะลงสีทั้งหมด นี่ 5 .
ที่ 3 กล่องจะขอให้คุณเลือกสี ป้อนดัชนีสีตาม รหัสสีของ Microsoft .
ที่นี่ฉันป้อน 6 (สำหรับ สีเหลือง สี)
กล่องสุดท้ายจะถามว่าคุณต้องการให้สีพื้นหลังทั้งหมดของเซลล์หรือเฉพาะข้อความ
ฉันได้ป้อน 1 (พื้นหลังทั้งหมด)
คลิก ตกลง . และคุณจะได้พื้นหลังทั้งหมดของชื่อ 5 ชื่อที่ไฮไลต์เป็นสีเหลือง
อ่านเพิ่มเติม: วิธีรับจำนวนแถวของเซลล์ปัจจุบันใน Excel (4 วิธีด่วน)
บทสรุป
เมื่อใช้วิธีการเหล่านี้ คุณสามารถใช้ VBA ช่วงที่มีหมายเลขแถวตัวแปรใน Excel คุณมีคำถามใด ๆ หรือไม่? สนใจสอบถามได้นะคะ
บทความที่เกี่ยวข้อง
- วิธีใช้ VBA Range Offset (11 วิธี)
- VBA สำหรับแต่ละเซลล์ในช่วงใน Excel (3 วิธี)
- วนรอบช่วงสำหรับแต่ละเซลล์ด้วย Excel VBA (Ultimate Guide)
- คัดลอกช่วง Excel VBA ไปยังชีตอื่น (8 วิธีที่ง่ายที่สุด)
- Excel VBA:ค้นหาสตริงในคอลัมน์และส่งคืนหมายเลขแถว
- วิธีการเพิ่มหมายเลขแถวในสูตร Excel (6 วิธีที่มีประโยชน์)