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

การโพสต์ Code กรุณาดูตัวอย่างในกฎการใช้บอร์ดข้อที่ 5 ด้านบนครับ
ไฟล์ที่แนบมานี้มีนามสกุลเป็น .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

ตัวอย่าง 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