วิธีการวนซ้ำแผ่นงาน Excel ของคุณด้วย VBA

แบ่งปันเลย:

ในบางครั้งการอ่านแผ่นงานทีละบรรทัดและเลือกใช้ข้อมูลจากมันก็มีประโยชน์ ตัวอย่างด้านล่างแสดงวิธีการทำเช่นนี้

บทความนี้ถือว่าผู้อ่านมี Ribbon ของนักพัฒนาที่แสดงอยู่และคุ้นเคยกับ VBA Editor มิฉะนั้นโปรดใช้“ แท็บนักพัฒนา Excel” ของ Google หรือ“ หน้าต่างรหัส Excel”

ตัวอย่างต่อไปนี้จะจัดการข้อมูลโดยการตรวจสอบที่อยู่อีเมลแต่ละแถวและเชื่อมต่อกันเป็นบรรทัดที่อยู่เดียว แม้ว่า Excel จะมีฟังก์ชัน Transpose ในตัว แต่เราตั้งใจให้โค้ดของเรายกเว้นที่อยู่บางส่วนและเพิ่มตัวคั่น

ใบสมัครของเราต้องการเพียงแผ่นเดียว คัดลอกข้อมูลด้านล่างไปยังเซลล์ A1:

อีเมล
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
เอนริโกเฟลลินี@cinecitta.co.it
marymontrary@bedlam.org.uk

วางปุ่มบนแบบฟอร์มเพื่อเริ่มต้นรหัสวางปุ่มบนแบบฟอร์มเพื่อเริ่มต้นรหัส

สมมติว่ามีอีเมลเหล่านี้หลายร้อยฉบับ แทนที่จะมีเพียงห้าฉบับ เราต้องการส่งข้อความเดียวกันและสำเนาบทภาพยนตร์เดียวกันไปยังทุกฉบับ มีหลายวิธีในการทำเช่นนี้ โดยวิธีที่เห็นได้ชัดที่สุดคือการเรียกใช้โปรแกรมส่งอีเมล เช่น Outlook จากโค้ด VBA อย่างไรก็ตาม แบบฝึกหัดนี้มีจุดประสงค์สองประการ:

  • แสดงวิธีการวนรอบแผ่นงานอย่างง่ายดาย
  • เน้นความสามารถของ Excel ในการตรวจสอบแต่ละแถวและดำเนินการกับมัน

รหัส VBA

รหัส VBA จะเชื่อมที่อยู่ทั้งหมดเข้าด้วยกันโดยใส่เครื่องหมายอัฒภาคหลังแต่ละอันเพื่อให้สามารถวางลงในช่องผู้รับอีเมลได้ คุณจะสังเกตได้จากรหัสว่าหลังจากตรวจสอบแถวแล้วจะไม่รวมแถวภาษาฝรั่งเศส

ใส่โมดูลและป้อนข้อมูลต่อไปนี้:

Option Explicit
Dim strEmail As String
Dim strAll As String

Sub Main()
    strAll = ""
    Range("C2") = strAll     'clear previous program results
    Sheets("Sheet1").Select
    Range("A2").Select
    Do While ActiveCell > ""      'loop until row 7
        strEmail = ActiveCell
        If Right(strEmail, 2) <> "fr" Then      'exclude France
            strAll = strAll & strEmail & ";"
        End If
        Range("A" & ActiveCell.Row + 1).Select     'move on a row in the SAME column
    Loop
    Range("C2") = strAll
End Sub

รหัสจะเก็บเซลล์ที่ใช้งานอยู่ในคอลัมน์ A เฉพาะแถวเท่านั้นที่ย้ายไป ในการอ้างอิงข้อมูลที่อื่นในแถวเราจะใช้:

Variable = Activecell.offset(offset rows, offset columns)

หากต้องการรับค่าจากคอลัมน์ B ในแถวที่ใช้งานอยู่โค้ดจะอ่าน Activecell.offset (0, 1). เพื่อให้ได้ค่า A2 เมื่อเราอยู่ใน A3 จะอ่าน Activecell.offset (-1, 0)

ในการทดสอบรหัสของคุณให้กำหนดปุ่มให้กับมาโคร“ หลัก”

ผู้ให้บริการอินเทอร์เน็ตบางรายเพื่อเป็นการป้องกันสแปมอาจ จำกัด จำนวนอีเมลที่คุณสามารถส่งได้ในครั้งเดียว หากคุณใช้วิธีนี้คุณควรตรวจสอบกับพวกเขาก่อนส่งอีเมลหลายร้อยฉบับในครั้งเดียว

การจัดการความเสียหายของไฟล์ Excel

ความเสียหายของไฟล์ Excelบางครั้งเราอาจพบปัญหาไฟล์เวิร์กบุ๊กเสียหายอย่างหนักจน Excel เองก็ไม่สามารถกู้คืนได้ นี่เป็นเรื่องร้ายแรงสำหรับผู้ใช้ Excel ส่วนใหญ่ รวมถึงผู้เชี่ยวชาญด้วย อย่างไรก็ตาม หากคุณมีเครื่องมือการกู้คืนที่มีประสิทธิภาพ คุณก็สามารถกู้คืนได้ ไฟล์ xlsx ที่เสียหาย อย่างง่ายดายและรวดเร็ว

บทนำผู้เขียน:

Felix Hooker เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซม rar คอรัปชั่น และผลิตภัณฑ์ซอฟต์แวร์กู้คืน sql ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด