Note: The other languages of the website are Google-translated. Back to English

จะทำซ้ำแถวตามค่าของเซลล์ในคอลัมน์ได้อย่างไร

ตัวอย่างเช่นฉันมีช่วงของข้อมูลซึ่งมีรายการตัวเลขในคอลัมน์ D และตอนนี้ฉันต้องการทำซ้ำทั้งแถวหลายครั้งโดยยึดตามค่าตัวเลขในคอลัมน์ D เพื่อให้ได้ผลลัพธ์ต่อไปนี้ ฉันจะคัดลอกแถวหลาย ๆ ครั้งตามค่าของเซลล์ใน Excel ได้อย่างไร

doc ทำซ้ำแถวตามเซลล์ 1

ทำซ้ำแถวหลายครั้งตามค่าของเซลล์ด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา ทำซ้ำแถวหลายครั้งตามค่าของเซลล์ด้วยรหัส VBA

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

1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ โมดูล หน้าต่าง.

รหัส VBA: ทำซ้ำแถวหลายครั้งตามค่าของเซลล์:

Sub CopyData()
'Updateby Extendoffice
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

3. จากนั้นกด F5 คีย์ในการเรียกใช้รหัสนี้ทั้งแถวซ้ำกันหลายครั้งตามค่าเซลล์ในคอลัมน์ D ตามที่คุณต้องการ

หมายเหตุ: ในรหัสด้านบนตัวอักษร A ระบุคอลัมน์เริ่มต้นของช่วงข้อมูลของคุณและตัวอักษร D คือตัวอักษรคอลัมน์ที่คุณต้องการทำซ้ำแถวตาม โปรดเปลี่ยนตามความต้องการของคุณ


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (41)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้ทำงานได้อย่างสมบูรณ์ ฉันจะเพิ่มอะไรในรหัสของคุณเพื่อทำให้บรรทัดที่มี '0' หายไป เราใช้สิ่งนี้สำหรับป้ายกำกับ SKU ขอบคุณสำหรับทางออกที่ดี!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ผมรักคุณ. ขอขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอขอบคุณ! บรรทัดที่ 10 และ 11 "D" หมายถึงจุดสิ้นสุดของแถว และอาจจำเป็นต้องเปลี่ยนเป็นช่วงข้อมูลเพื่อให้ใช้งานได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
มีคนรู้จักการแปลงรหัส VBA นี้เป็นสคริปต์ของ Google Apps (google ชีต) หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันใช้โค้ดด้านบนซึ่งใช้งานได้ดี แต่ฉันต้องการอีกหนึ่งขั้นตอนหลังจากวางแถวแล้ว ฉันไม่สามารถทำให้มันทำงานได้อย่างถูกต้อง ฉันต้องการให้มันใส่ศูนย์ในคอลัมน์ "N" ในแถวหลังจากที่วางแล้ว แต่เก็บค่าไว้ใน "N" ในแถวที่คัดลอกต้นฉบับ


ย่อย CopyData()
'Updateby Extendoffice 20160922
Dim xRow ตราบใดที่
Dim VInSertNum เป็นตัวแปร
xRow = 1
Application.ScreenUpdating = เท็จ
ทำในขณะที่ (เซลล์ (xRow, "A") <> "")
VInSertNum = เซลล์ (xRow, "J")
ถ้า ((VInSertNum > 1) และ IsNumeric(VInSertNum)) แล้ว
Range(Cells(xRow, "A"), Cells(xRow, "AN")).Copy
' Cells(xRow, 14).Value = 0 ทำได้ทุกแถว
ช่วง(เซลล์(xRow + 1, "A"), เซลล์(xRow + VInSertNum - 1, "AN")).เลือก
'เซลล์(xRow, 14).Value = 0
'นี้ทำทุกแถว
Selection.Insert Shift:=xlDown
' Cells(xRow, 14).Value = 0 ได้เฉพาะแถวแรกเท่านั้น
xRow = xRow + VInSertNum - 1
'เซลล์(xRow - 1, 14).Value = 0
End If
' เซลล์(xRow - 1, 14).Value = 0
xRow = xRow + 1
' เซลล์(xRow + 1, 14).Value = 0
ห่วง
'Cells(xRow, 14).Value = 0 this did no rows
Application.ScreenUpdating = เท็จ
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีสตีฟ คุณทำได้ไหม ความต้องการของฉันเหมือนกัน :(
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีทุกคน,
บางทีบทความด้านล่างอาจช่วยคุณได้ โปรดตรวจสอบ:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณรู้หรือไม่ว่ารหัสใดที่จะทำซ้ำแถวเพียงครั้งเดียวโดยขึ้นอยู่กับว่าเซลล์ d มี 'ใช่' - ฉันไล่ตามรหัสที่คล้ายกัน แต่สำหรับบางสิ่งที่จะทำซ้ำแถวตามเซลล์ที่บอกว่าใช่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ดังนั้นฉันจึงใช้รหัสนี้ แต่ฉันต้องการให้มันค้นหาเอกสารทั้งหมดไม่ใช่แค่แถวที่ 1 หรืออะไรก็ตามที่ระบุโดย xRow = 1 ฉันกำลังพยายามใส่ในช่วง 1:2000 แต่มันไม่ทำงาน ฉันจะระบุ xRow = แถวใดๆ บนแผ่นงานที่มีข้อมูลที่ฉันระบุในโค้ดด้านล่างได้อย่างไร


Dim xRow ตราบใดที่
ค่า Dim เป็น Variant


xRow = 1:2000

Application.ScreenUpdating = เท็จ
ทำในขณะที่ (เซลล์ (xRow, "A") <> "")
ค่า = เซลล์ (xRow, "D")
ค่า 2 = เซลล์ (xRow, "A")
ถ้าไม่ใช่ ((Value = "Allegheny general") และ IsNumeric(Value2 = G0202)) แล้ว
Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
ช่วง(เซลล์(xRow + 1, "A"), เซลล์(xRow + 1, "D")).เลือก
Selection.Insert Shift:=xlDown
xRow = xRow + 1
End If
xRow = xRow + 1
ห่วง
Application.ScreenUpdating = เท็จ
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี วิธีนี้ได้ผลดี อย่างไรก็ตาม ฉันมีรายงานที่มี 1000 รายการและโค้ดหยุดทำซ้ำรอบรายการ 480 มีบางอย่างที่ฉันสามารถเพิ่มเพื่อให้การดำเนินการกับรายงานทั้งหมดเสร็จสมบูรณ์หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ลีอาห์
ฉันทดสอบโค้ดแล้วใน 2000 แถวและใช้งานได้ดี
คุณช่วยส่งใบงานของคุณมาให้ฉันเพื่อทดสอบโค้ดได้ไหม
ที่อยู่อีเมลของฉันคือ skyyang@extendofficeด้วย.
รอการตอบกลับของคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี! ฉันได้มันไปทำงาน มันเป็นข้อผิดพลาดของฉัน รายงานมีแถวว่างสองสามแถวที่ถูกซ่อนไว้ซึ่งทำให้สคริปต์หยุดวนซ้ำ มันใช้ได้กับรายงานของฉันด้วย 8,000 แถว! ขอบคุณQ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีลีอาห์และสกายยัง
ฉันมีปัญหาที่คล้ายกัน - สคริปต์ทำงานได้ดีในแผ่นงานประมาณ 100 แถว แต่มันหยุดทำงานสำหรับสิ่งที่ใหญ่กว่านี้ ฉันได้ตรวจสอบแถวว่างในคอลัมน์ที่มีหมายเลขการคูณ แต่ไม่มี สาเหตุอื่นใดที่สคริปต์อาจไม่ทำงานสำหรับชุดข้อมูลที่ใหญ่กว่า
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ! มันเป็นทางออกที่ดีสำหรับปัญหาทั้งหมดของฉัน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สคริปต์นี้ดูเหมือนจะเป็นสิ่งที่ฉันต้องการ แต่เมื่อฉันเรียกใช้ ฉันได้รับข้อผิดพลาดในบรรทัด Selection.Insert Shift:=x1Down

ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีแก้ไขปัญหานี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี สำหรับฉันใช้งานไม่ได้ ฉันต้องการลบตัวอักษรและหมายเลขที่ซ้ำกันได้ไหม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีอัปเดตโมดูลเพื่อทำซ้ำเฉพาะข้อมูลใหม่หรือไม่? ฉันกำลังทำงานกับเอกสารที่กำลังดำเนินการอยู่และไม่ต้องการให้โค้ดซ้ำกับข้อมูลที่ซ้ำกันก่อนหน้านี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีใดบ้างที่เราสามารถเพิ่มลงในแต่ละเซลล์ซ้ำ ๆ กัน caracters ต่อเนื่อง? ตัวอย่าง
KTE+0001

KTE+0002
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
น่ารัก! ขอขอบคุณ. ฉันสงสัยว่าใครสามารถให้คำแนะนำว่าฉันจะรวมคอลัมน์ข้อมูลใหม่ลงในตารางได้อย่างไร (คอลัมน์ E) ซึ่งเป็นค่าที่เพิ่มขึ้นสำหรับแต่ละแถวที่คัดลอก 1, 2, 3, 4 ฯลฯ ... จากนั้น เมื่อถึงรายการถัดไปที่จะทำซ้ำ X ครั้งก็จะเริ่มนับอีกครั้งจาก 1 และเพิ่มขึ้นทีละ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันได้ลองแล้ว แต่มีวิธีพิจารณาไหมว่าข้อมูลที่ฉันกำลังทำซ้ำมีหลายเกณฑ์หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

ฉันกำลังสร้างสเปรดชีตโดยใช้สูตรที่ให้ไว้ แต่มีข้อผิดพลาด ใครช่วยบอกฉันทีว่าสูตรของฉันควรเป็นอย่างไร?

ตารางของฉันมาจาก AY โดยมีปริมาณเป็น K
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันพยายามปรับรหัสนี้แต่มีปัญหา
ฉันมีรายการสินค้าคงคลัง แต่ละรายการมีสองแถวและต้องการให้ทำซ้ำ N จำนวนครั้ง
ที่ด้านบนสุดของสเปรดชีต ฉันมีเซลล์ที่เรียกว่า A1 ฉันมีการทำซ้ำกี่ครั้ง นู๋
ไม่ว่าค่า N คืออะไร ฉันต้องการทำซ้ำรายการสินค้าคงคลังเริ่มต้นที่ฉันมี (A16, A17) หลายครั้ง
ดังนั้นรายการที่คัดลอกควรเริ่มต้นใน A18 (และเป็นสองแถว รายการถัดไป a20 เป็นต้น
ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี รหัสใช้งานได้ดี ฉันยังต้องการเพิ่ม +1 ในวันที่ (วันธรรมดาเท่านั้น) ทุกครั้งที่มีการทำซ้ำแถว
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก! สิ่งนี้ช่วยฉันประหยัดเวลาได้มากจนฉันเคยเสียเวลากับการคัดลอกและวางแถวข้อมูลทั้งหมดของฉัน
ยกนิ้วให้สองนิ้ว !!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
โค้ดเด็ด!!! ขอขอบคุณ!!!
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL