รหัส VBA เพื่อคัดลอกข้อมูลจากแผ่นหนึ่งไปอีกแผ่นแบบมีเงื่อนไข

ปัญหา

ฉันต้องการรหัส VBA ที่สามารถคัดลอกข้อมูลจากชีต 1 (ข้อมูลดิบ) ไปยังชีต 2, ชีต 3 และอื่น ๆ ... ตามเงื่อนไขที่ตรงกัน

คอลัมน์ --- มี ------------ ------------ B C D ------------ ------ -E

----------- ชื่อสถาน ----- ---- บริษัท --- ประเทศ

----------- name1 ---- AB ------- ------- Nokia สหรัฐอเมริกา

----------- name2 ---- ซีดีโซนี่ ------- -------- สหราชอาณาจักร

----------- NAME3 ----- EF ------- LG ----------- อินเดีย

----------- NAME4 ----- AB ------ โซนี่ ------ รัสเซีย

----------- NAME5 ----- AB ------ ------ โซนี่เยอรมนี

----------- name6 ----- ซีดี ------ Nokia ------ อินเดีย

----------- name7 ----- ------ ซีดีอีริคสัน - สหรัฐอเมริกา

----------- name8 ----- EF ------ Ericsson ---- รัสเซีย

----------- name9 ----- GH ------ ----- เลนอร์ในสหราชอาณาจักร

----------- name10 --- GH ------- HP --------- อินเดีย

สารละลาย

คุณสามารถใช้รหัสต่อไปนี้

 ย่อย SplitSheets () Dim DataSht, wsCrit, SplitSht เป็นเวิร์กชีต Dim lrUnq, lrData, i ตราบใดที่ Dim FtrVal เป็นสตริง Application.ScreenUpdating = ชุดข้อมูลที่ผิดพลาด = แผ่นงาน ("sheet1") 'เปลี่ยนเป็นชื่อของแผ่นข้อมูลดิบของคุณ lrData = DataSht.Range ("a" & Rows.Count) .End (xlUp) .Row Set wsCrit = Worksheets.Add DataSht.Range ("B1: l" & lrData) .AdvancedFilter แอ็คชัน: = xlFilterCopy, _ CopyToRange: = wsCrit .Range ("A1"), ไม่ซ้ำกัน: = True lrUnq = wsCrit.Range ("a" & Rows.Count) .End (xlUp) .Row for i = 2 ถึง lrUnq FtrVal = wsCrit.Range ("A" & i ) .Value Set SplitSht = Worksheets.Add DataSht.Select 'DataSht.ShowAllData ActiveSheet.AutoFilterMode = False ActiveSheet.Range ("A1: Z" & lrData) .AutoFilter Range: = 2, Criteria1: = FtrVal Range ("a1") .Select Range (Selection, Selection.End (xlToRight)) เลือก Range (Selection, Selection.End (xlDown)) เลือก Selection.Copy SplitSht.Select Range ("A1") เลือก ActiveSheet.Paste 'CellsSelect Cells .EntireColumn.AutoFit SplitSht.Name = แอปพลิเคชัน FtrVal.CutCopyMode = เท็จถัดไป i แอป lication.DisplayAlerts = เท็จ wsCrit.Delete Application.DisplayAlerts = True .AutoFilterMode จริง = ย่อยสิ้นสุดเท็จ 

ขอบคุณ RWomanizer สำหรับเคล็ดลับนี้

บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม