คุกกี้ช่วยให้เราสามารถนำเสนอบริการของเรา โดยการใช้บริการของเราคุณยินยอมที่จะใช้งานของเราคุกกี้
เคล็ดลับ: ภาษาอื่น ๆ ได้รับการแปลโดย Google คุณสามารถเยี่ยมชม English รุ่นของลิงก์นี้
เข้าสู่ระบบ
x
or
x
x
สมัครสมาชิก
x

or

วิธีการทำซ้ำแถวตามค่าของเซลล์ในคอลัมน์?

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

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

ทำสำเนาแถวหลายครั้งโดยพิจารณาจากค่าของเซลล์ด้วยรหัส VBA

เครื่องมือเพิ่มประสิทธิภาพที่แนะนำสำหรับ Excel / Office

แท็บ Office: นำการแก้ไขแท็บไปใช้ Excel และซอฟต์แวร์ Office อื่น ๆ เช่นเดียวกับ Chrome, Firefox และ Safariการทดลองใช้ฟรีไม่ จำกัด 30 วัน

Kutools สำหรับ Excel: คุณลักษณะที่มีประสิทธิภาพของ 300 ช่วยให้ Excel ใช้งานได้ง่ายและเพิ่มประสิทธิภาพการทำงานได้ทันทีการทดลองใช้ฟรีไม่ จำกัด 60 วัน


ลูกศรสีฟ้าด้านขวา ทำสำเนาแถวหลายครั้งโดยพิจารณาจากค่าของเซลล์ด้วยรหัส VBA

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

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

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

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

Sub CopyData()
'Updateby Extendoffice 20160922
    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 เป็นตัวอักษรคอลัมน์ที่คุณต้องการทำซ้ำแถวตาม โปรดเปลี่ยนตามความต้องการของคุณ



เครื่องมือเพิ่มประสิทธิภาพที่แนะนำ

แท็บ Office

gold star1 นำแท็บที่มีประโยชน์ไปยัง Excel และซอฟต์แวร์ Office อื่น ๆ เช่นเดียวกับ Chrome, Firefox และ Internet Explorer ใหม่

Kutools สำหรับ Excel

gold star1 น่าทึ่ง! เพิ่มประสิทธิภาพการทำงานของคุณในอีก 5 นาที ไม่จำเป็นต้องมีทักษะพิเศษประหยัดสองชั่วโมงทุกวัน!

gold star1 300 คุณสมบัติใหม่สำหรับ Excel, Make Excel ง่ายมากและมีประสิทธิภาพ:

  • ผสานเซลล์ / แถว / คอลัมน์โดยไม่สูญเสียข้อมูล
  • รวมและรวมแผ่นงานหลายแผ่นและสมุดงาน
  • เปรียบเทียบช่วง, คัดลอกหลายช่วง, แปลงข้อความเป็นวันที่, หน่วยและการแปลงสกุลเงิน
  • นับตามสี, เพจย่อยย่อย, การเรียงลำดับขั้นสูงและตัวกรอง Super,
  • เพิ่มเติมเลือก / แทรก / ลบ / ข้อความ / รูปแบบ / ลิงก์ / ความคิดเห็น / เวิร์คบุ๊ค / แผ่นงานเครื่องมือ ...

ภาพหน้าจอของ Kutools for Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    KAS · 1 months ago
    Is there a way to update the module to only duplicate new data? I'm working on an ongoing document and do not want the code to duplicate data that has been previously duplicated.
  • To post as a guest, your comment is unpublished.
    Gerardo Enrique Heras Araujo · 2 months ago
    hi, for me is no working, I want to remove letters and number duplicate is possible?
  • To post as a guest, your comment is unpublished.
    Naomi · 2 months ago
    This script seems to be exactly what I need, however, when I run it I am getting an error on the line Selection.Insert Shift:=x1Down

    Any suggestions on how I fix this?
  • To post as a guest, your comment is unpublished.
    Manuel F · 2 months ago
    Thanks! it has been a great solution for all my troubles!
  • To post as a guest, your comment is unpublished.
    Leah · 3 months ago
    Hello, this worked great. However, I have a report with 1000 entries and the code stopped duplicating around entry 480. Is there something that I can add so that it completes the action on the entire report?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hello, Leah,
      I have tested the code in 2000 rows, and it works well.
      Could you send your worksheet to me for testing the code?
      My email address is skyyang@extendoffice.com
      Look forward to your reply!
      • To post as a guest, your comment is unpublished.
        Leah · 3 months ago
        Hello! I got it to work. It was an error on my side, the report had a few blank rows that were hidden that were causing the script to stop looping. It worked for my report with 8,000 rows! Thank youQ