VBA เชื่อมต่อ | วิธีการต่อสตริงเข้าด้วยกันใน VBA

การต่อกันหมายถึงการรวมค่าสองค่าหรือสองสตริงเข้าด้วยกันคล้ายกับ excel ที่เราใช้ & หรือเรียกอีกอย่างว่าตัวดำเนินการแอมเพอร์แซนด์เพื่อเชื่อมต่อสองสายต่อสองสตริงที่เราใช้ & ตัวดำเนินการเช่นสตริง 1 และสตริง 2 ตอนนี้มีสิ่งสำคัญที่ต้องจำไว้และนั่นคือ คือในขณะที่ใช้ตัวดำเนินการ & เราจำเป็นต้องระบุช่องว่างมิฉะนั้น VBA จะพิจารณาว่ามันยาว

VBA Concatenate Strings

VBA Concatenate เป็นหนึ่งในสิ่งเหล่านั้นที่เราใช้ในการรวมค่าเซลล์สองค่าขึ้นไปเข้าด้วยกันถ้าฉันพูดในภาษาง่ายๆว่ามันกำลังรวมกันก็คือการรวมค่าสองค่าขึ้นไปเข้าด้วยกันเพื่อให้มีค่าเต็ม

เรามีฟังก์ชันที่เรียกว่า CONCATENATE ใน excel ซึ่งจะทำการรวมค่าสองค่าขึ้นไปหรือค่าเซลล์สองค่าขึ้นไปเข้าด้วยกัน

แต่ใน VBA เราไม่มีฟังก์ชันในตัวที่จะเชื่อมค่าสองค่าขึ้นไปเข้าด้วยกัน ในความเป็นจริงเราไม่สามารถเข้าถึงคลาสฟังก์ชันแผ่นงานเพื่อเข้าถึงฟังก์ชัน VBA CONCATENATE เป็นฟังก์ชันแผ่นงานได้

วิธีการต่อสตริงใน VBA

หากเราไม่มีฟังก์ชันในตัวเพื่อเชื่อมต่อค่าต่างๆและแม้แต่ฟังก์ชันแผ่นงานก็ไม่ได้รวมเข้ากับ VBA ตอนนี้ความท้าทายคือเราจะรวมคุณค่าได้อย่างไร?

แม้ว่าจะไม่มีฟังก์ชันในตัว แต่เราสามารถรวมใน VBA ได้โดยใช้สัญลักษณ์“ ampersand” (&)

หากคุณติดตามโพสต์ของเราเป็นประจำเรามักจะใช้สัญลักษณ์เครื่องหมายและ (&) ในการเขียนโค้ดของเรา

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

ขั้นตอนที่ 1:ไปที่ Visual Basic Editor และสร้างโพรซีเดอร์ย่อย VBA

ขั้นตอนที่ 2:กำหนดสามตัวแปรเป็นสตริง

รหัส:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String End Sub 

ขั้นตอนที่ 3:กำหนดชื่อและนามสกุลให้กับตัวแปร

รหัส:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" End Sub 

ขั้นตอนที่ 4:รวมสองชื่อนี้เข้ากับตัวแปรFull_Nameโดยใช้ตัวแปรแอมเพอร์แซนด์

รหัส:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & Last_Name End Sub 

ขั้นตอนที่ 5:ตอนนี้แสดงค่าของตัวแปร Full_Name ในกล่องข้อความ

รหัส:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & Last_Name MsgBox Full_Name End Sub 

ตอนนี้เรียกใช้รหัสเราจะได้รับชื่อเต็มในกล่องข้อความ

ปัญหาเกี่ยวกับชื่อเต็มนี้คือเราไม่ได้เพิ่มช่องว่างอักขระคั่นชื่อและนามสกุลในขณะที่รวมชื่อและนามสกุลเข้าด้วยกันให้รวมอักขระเว้นวรรค

รหัส:

 Sub Concatenate_Example () Dim First_Name As String Dim Last_Name As String Dim Full_Name As String First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & "" & Last_Name MsgBox Full_Name End Sub 

ตอนนี้จะตั้งชื่อเต็มให้ถูกต้อง

เช่นนี้โดยใช้สัญลักษณ์เครื่องหมายแอมเพอร์แซนด์เราสามารถต่อค่าได้ ตอนนี้เราจะแก้ปัญหาแผ่นงานในการแก้ชื่อและนามสกุลร่วมกันเพื่อทำให้เป็นชื่อเต็ม

เนื่องจากเราต้องรวมชื่อหลายชื่อเราจึงต้องใช้ลูปเพื่อรวมชื่อและนามสกุลเข้าด้วยกัน รหัสด้านล่างจะทำงานให้คุณ

รหัส:

 Sub Concatenate_Example1 () Dim i As Integer For i = 2 ถึง 9 Cells (i, 3) .Value = Cells (i, 1) & "" & Cells (i, 2) ถัดไป i End Sub 

ซึ่งจะรวมชื่อและนามสกุลเช่นเดียวกับฟังก์ชันเชื่อมต่อ VBA ของเรา

ข้อผิดพลาดทั่วไปในการเชื่อมต่อ Ampersand VBA

หากคุณสังเกตเห็นรหัสของฉันฉันได้เพิ่มอักขระช่องว่างระหว่างค่ากับสัญลักษณ์เครื่องหมายและ นี่เป็นสิ่งสำคัญเนื่องจากลักษณะของการเขียนโปรแกรม VBA

เราไม่สามารถรวมค่าและสัญลักษณ์แอมเพอร์แซนด์เข้าด้วยกันไม่เช่นนั้นเราจะได้รับ Compile Error ดังตัวอย่างด้านล่าง

เชื่อมต่อ VBA โดยใช้ฟังก์ชัน JOIN

ใน VBA เราสามารถใช้ฟังก์ชัน JOIN เพื่อรวมค่าต่างๆ ขั้นแรกให้ดูที่ไวยากรณ์ของฟังก์ชัน VBA JOIN

  • อาร์เรย์ไม่ใช่อะไรนอกจากอาร์เรย์ที่เก็บค่าของเรา เช่นทั้งชื่อและนามสกุล
  • ตัวคั่นคืออะไรนอกจากตัวคั่นระหว่างค่าอาร์เรย์แต่ละค่าในกรณีนี้คืออักขระช่องว่าง

โค้ดด้านล่างจะแสดงตัวอย่างเดียวกัน

รหัส:

Sub Concatenate_Example2 () Dim MyValues ​​As Variant Dim Full_Name As String MyValues ​​= Array ("Sachin", "Tendulkar") Full_Name = Join (MyValues, "") MsgBox Full_Name End Sub