ฉันคิดว่าฉันมีวิธีที่ดีกว่า ฉันพูดว่าคิดว่าจะดีกว่านี้ถ้าคุณมีข้อมูลจำนวนมากหรือกระจายไปทั่วแผ่นงานหลาย ๆ แผ่น (หรือแม้แต่สมุดงาน) นอกจากนี้ยังเป็นวิธีการที่ดีเนื่องจากสามารถใช้มาโครด้านล่างเพื่อวัตถุประสงค์อื่น ๆ มากมายเมื่อพยายามค้นหาข้อมูลที่ตรงกัน (หรืออาจเป็นกรณีที่ไม่ใช่ข้อมูลที่ไม่ตรงกัน)
โดยสรุปแมโครนี้ให้คุณค้นหาข้อมูลที่ตรงกันระหว่างสองช่วงไม่ว่าจะอยู่ในแผ่นงานเดียวกันหรือข้ามแผ่นงาน ฉันได้วางรหัสแมโครที่ด้านล่างของคำตอบนี้ ฉันคิดว่าในขั้นตอนนี้คุณจะรู้ว่าจะทำอย่างไรกับมัน ฉันยังสมมติว่าคุณกำลังใช้ Excel เวอร์ชันหนึ่งที่ทำงานใน Windows
สรุปขั้นตอนมาโคร
- เมื่อคุณเรียกใช้แมโครมันจะขอให้คุณเลือกช่วงของเซลล์ที่มีข้อมูลที่คุณกำลังมองหา ตัวอย่างเช่นสมมติว่าในแผ่นงานแรกของคุณคุณมีที่อยู่อีเมลทั้งหมดในคอลัมน์ C จาก C2 ถึง C101 คุณจะต้องเลือกช่วงนั้น
- จากนั้นแมโครจะขอให้คุณเลือกช่วงที่คุณต้องการตรวจสอบ เพียงเลือกช่วงที่มีที่อยู่อีเมลสำหรับกิจกรรมที่สองของคุณ
- จากนั้นแมโครจะพร้อมท์ให้คุณระบุ 'ความคิดเห็น' สำหรับแมโครที่จะใช้เพื่อระบุว่าได้พบรายการที่ตรงกัน คุณสามารถระบุอะไรก็ได้ที่นี่เช่น "พบ", "ใช่" ฯลฯ
- ในที่สุดแมโครจะขอให้คุณป้อนตัวอักษรคอลัมน์ นี่คือคอลัมน์ที่แมโครจะวาง 'ความคิดเห็น' ของคุณจากขั้นตอนก่อนหน้า
ตัวอย่างเช่น
สมมติว่าคุณมีแผ่นงานห้าแผ่นที่เหมือนกันในสมุดงานของคุณแต่ละแผ่นสำหรับแต่ละรายการการเข้างาน สมมติว่าคอลัมน์ A ถึง F บรรจุในแต่ละแผ่นงานและเป็นคอลัมน์ C ที่มีที่อยู่อีเมล สมมติว่าคุณมีผู้เข้าร่วม 100 คนดังนั้นที่อยู่อีเมลจะปรากฏจาก C2 ถึง C101 ในแต่ละแผ่นงาน
เรียกใช้แมโคร
ที่ขั้นตอนที่ 1เลือกช่วง C2: C101 ในแผ่นงานแรกของคุณ ที่ขั้นตอนที่ 2เลือกช่วง C2: C101 ในแผ่นงานที่สองของคุณ ที่ขั้นตอนที่ 3 ให้ป้อน "ใช่" เป็นความคิดเห็นของคุณ และสำหรับขั้นตอนที่ 4 ให้ป้อนตัวอักษร G (เพียงเพราะมันเป็นคอลัมน์แรกที่ว่างเปล่าตามตัวอย่างของฉัน แต่ในกรณีของคุณมันน่าจะเป็นตัวอักษรคอลัมน์อื่น)
เมื่อแมโครทำงานคอลัมน์ G ของเวิร์กชีตแรกของคุณจะมีข้อความ "ใช่" ในแถวใดก็ได้ที่พบที่อยู่อีเมลในรายการผู้เข้าร่วมที่สอง
ตอนนี้ในกรณีของคุณคุณจะต้องเรียกใช้แมโครอีกครั้ง ทำตามขั้นตอนข้างต้นยกเว้นเวลานี้ในขั้นตอนที่ 2 เลือกช่วง C2: C101 ในแผ่นงานที่สามของคุณและที่ขั้นตอนที่ 4 เลือกคอลัมน์ถัดไปหลังจากที่คุณเลือกไว้ก่อนหน้านี้ ในสถานการณ์ของฉันตอนนี้มันจะเป็นคอลัมน์ H
เมื่อแมโครทำงานคอลัมน์ H ของแผ่นงานแรกของคุณจะมีข้อความ "ใช่" ในแถวใดก็ได้ที่พบที่อยู่อีเมลในรายการผู้เข้าร่วมคนที่สาม
ถึงตอนนี้คุณจะเริ่มเห็นว่าเกิดอะไรขึ้น ตามเวลาที่คุณทำซ้ำขั้นตอนเหล่านี้เพื่อครอบคลุมรายการเข้าร่วมประชุมทั้งหมดของคุณคุณจะมีสี่คอลัมน์ที่มีข้อความ "ใช่" ที่เกี่ยวข้อง ตอนนี้คุณสามารถเรียงลำดับ / กรองข้อมูลของคุณเพื่อให้แถวที่มี "ใช่" ในคอลัมน์เหล่านั้นเท่านั้นที่แสดง นี่คือคนที่เข้าร่วมกิจกรรมทั้งหมด
สุดท้ายก่อนที่จะใช้แมโครใด ๆ ให้สำรองไฟล์ Excel ของคุณเพื่อให้คุณมีสำเนาที่สมบูรณ์!
Sub FindMatchingData()
'This macro and Excel Add-In was designed by Monomeeth to allow users an easy
'way to find matching data between two ranges, either within the same worksheet or
'across worksheets within the same workbook.
Dim MySearchRange As Range
Dim c As Range
Dim findC As Variant
Set MyRange = Application.InputBox( _
Prompt:="Select the range of cells containing the data you are looking for:", Type:=8)
Set MySearchRange = Application.InputBox( _
Prompt:="Select the range you wish to investigate:", Type:=8)
Response = InputBox(Prompt:="Specify the comment you wish to appear to indicate the data was found:")
MyOutputColumn = Application.InputBox( _
Prompt:="Enter the alphabetical column letter(s) to specify the column you want the message to appear in.")
Set Sht = MyRange.Parent
For Each c In MyRange
If Not c Is Nothing Then
Set findC = MySearchRange.Find(c.Value, LookIn:=xlValues)
If Not findC Is Nothing Then
Sht.Range(MyOutputColumn & c.Row).Cells.Value = Response
End If
End If
Next
Excel.Application.SendKeys Keys:="^{HOME}", Wait:=True
DoEvents
MsgBox "Investigation completed."
End Sub