Page 1 of 1

VBA : เพิ่มบรรทัดตามค่าที่ระบุไว้และก๊อปปี้-วางค่าจากบรรทัดบนในบรรทัดที่เพิ่มใหม่

Posted: Tue Sep 17, 2019 10:58 am
by goodbeary
สอบถามครับ
ต้องการเพิ่มบรรทัดจากคอลัมน์ที่ระบุค่าไว้ แล้วก๊อปปี้และวางค่าจากบรรทัดด้านบนในบรรทัดที่เพิ่มขึ้น
ตอนนี้ติดปัญหา Code Copy & Paste value แบบ Range ครับ

ขอบคุณครับ

Sub InstRow()
Dim i As Integer, n As Integer, m As Long, currentCell As Range
Set currentCell = ActiveCell
Do While Not IsEmpty(currentCell)
n = currentCell.Value - 1
m = currentCell.Row
If n > 0 Then
Rows(m + 1 & ":" & m + n).Insert
Set currentCell = currentCell.Offset(n + 1, 0)
Else
Set currentCell = currentCell.Offset(1, 0)
End If
Loop
End Sub

Re: VBA : เพิ่มบรรทัดตามค่าที่ระบุไว้และก๊อปปี้-วางค่าจากบรรทัดบนในบรรทัดที่เพิ่มใหม่

Posted: Sat Sep 21, 2019 10:03 am
by snasui
:D การโพสต์ Code กรุณาดูตัวอย่างในกฎการใช้บอร์ดข้อที่ 5 ด้านบนครับ :roll:

ไฟล์ที่แนบมานี้มีนามสกุลเป็น .xlsx ไม่สามารถแนบ Code มาด้วยได้ การจะแนบ Code เข้าไปในไฟล์ได้ ไฟล์นั้นจะต้องมีนามสกุลเป็น .xlsm หรือ .xlsb เช่นนี้เป็นต้น กรุณาแนบไฟล์ที่มี Code มาใหม่จะได้สะดวกในการทดสอบครับ

Re: VBA : เพิ่มบรรทัดตามค่าที่ระบุไว้และก๊อปปี้-วางค่าจากบรรทัดบนในบรรทัดที่เพิ่มใหม่

Posted: Mon Sep 23, 2019 9:33 am
by goodbeary
ขอบคุณครับ เดี๋ยวตั้งกระทู้แล้วแนบไฟล์มาใหม่ครับ

Re: VBA : เพิ่มบรรทัดตามค่าที่ระบุไว้และก๊อปปี้-วางค่าจากบรรทัดบนในบรรทัดที่เพิ่มใหม่

Posted: Mon Sep 23, 2019 11:39 am
by goodbeary
แนบไฟล์ตัวอย่างมาให้ใหม่แล้วครับ

สอบถามครับ
ต้องการเพิ่มบรรทัดจากคอลัมน์ที่ระบุค่าไว้ แล้วก๊อปปี้และวางค่าจากบรรทัดด้านบนในบรรทัดที่เพิ่มขึ้น
ตอนนี้ติดปัญหา Code Copy & Paste value แบบ Range ครับ

ขอบคุณครับ

Sub InstRow()
Dim i As Integer, n As Integer, m As Long, currentCell As Range
Set currentCell = ActiveCell
Do While Not IsEmpty(currentCell)
n = currentCell.Value - 1
m = currentCell.Row
If n > 0 Then
Rows(m + 1 & ":" & m + n).Insert
Set currentCell = currentCell.Offset(n + 1, 0)
Else
Set currentCell = currentCell.Offset(1, 0)
End If
Loop
End Sub

Re: VBA : เพิ่มบรรทัดตามค่าที่ระบุไว้และก๊อปปี้-วางค่าจากบรรทัดบนในบรรทัดที่เพิ่มใหม่

Posted: Tue Sep 24, 2019 7:08 am
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Dim i As Integer
Dim n As Integer
With Sheets("Before")
    i = .Range("e" & .Rows.Count).End(xlUp).Row
    Do While i > 6
        n = .Cells(i, "e").Value - 1
        If n > 0 Then
            .Cells(i, "e").Offset(1, 0).Resize(n).EntireRow.Insert xlDown
            .Cells(i, "e").EntireRow.Copy .Cells(i, "e").EntireRow.Resize(n + 1)
            .Cells(i, "e").Offset(1, 0).Resize(n).ClearContents
        End If
        i = i - 1
    Loop
End With
สังเกตการโพสต์ Code จะต้องให้แสดงตามลักษณะด้านบน ดูวิธีการได้ที่กฎการใช้บอร์ดข้อ 5 ด้านบนแต่ละหน้า ในโอกาสถัดไป กรุณาโพสต์ Code ให้แสดงในลักษณะเช่นนี้เสมอครับ

Re: VBA : เพิ่มบรรทัดตามค่าที่ระบุไว้และก๊อปปี้-วางค่าจากบรรทัดบนในบรรทัดที่เพิ่มใหม่

Posted: Tue Sep 24, 2019 10:02 pm
by goodbeary
ทดลองใช้แล้วครับ ใช้งานได้ดีถูกต้องตามวัตถุประสงค์ อีกทั้ง code สั้นกระชับและแกะตามไม่ยากครับ

ขอบคุณครับ
Goodbeary