Page 1 of 1
copyมาวางไม่ได้ครับ
Posted: Mon Jul 27, 2020 7:29 am
by yodpao.b
copyมาวางไม่ได้ครับ
1.JPG
จากรูป คลิกปุ่ม
ปุ่มมีหน้าที่ insert และ คัดลอกข้อมุลมาวาง
ผลวางแล้วข้อมูลหาย
เนื่องจากมี code ที่สั่งให้ del ร่วมอยู่ด้วยครับแก้อย่างไรดีครับ
code ด้านล่างเป็นสาเหตุให้ไม่ได้ตามต้องการ
code ด้านล่างนี้มีหน้าที่เมื่อคลิกเชลที่รูปกากบาท จะ ลบทั้งแถวครับ
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B7:B2000")) Is Nothing Then
If Cells(ActiveCell.Row, 4) <> 0 Then
Selection.EntireRow.Delete
End If
End If
End Sub
ต้องแก้ไขอย่างไรดีครับ
Re: copyมาวางไม่ได้ครับ
Posted: Mon Jul 27, 2020 9:49 am
by snasui

ช่วยอธิบายว่างานนี้ต้องการผลลัพธ์เป็นอย่างไรครับ
ต้องการคลิกเซลล์ที่มีตัว X ตั้งแต่บรรทัดที่ 7 เป็นต้นไปแล้วให้ลบรายการนั้นทิ้งแล้วนำบรรทัดที่ 2 มาวางแทนหรือว่าเป็นแบบไหน ช่วยอธิบายเพิ่มเติมมาอีกรอบครับ
Re: copyมาวางไม่ได้ครับ
Posted: Mon Jul 27, 2020 6:02 pm
by yodpao.b
ต้องการคัดลอกบรรทัดในวงกลม ให้ไปอยู่ในบรรทัดที่ 7 ครับ ดังรูป
ผล
1.JPG
code ที่ใช้
Code: Select all
Rows("7:7").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B2:F2").Select
Selection.Copy
Range("B7").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Re: copyมาวางไม่ได้ครับ
Posted: Mon Jul 27, 2020 7:07 pm
by snasui
yodpao.b wrote: Mon Jul 27, 2020 6:02 pm
ต้องการคัดลอกบรรทัดในวงกลม ให้ไปอยู่ในบรรทัดที่ 7 ครับ ดังรูป

ตัวอย่าง Code ครับ
Range("b2:f2").Copy Range("b7")
Re: copyมาวางไม่ได้ครับ
Posted: Mon Jul 27, 2020 10:49 pm
by yodpao.b
สมมุติมี 5 บรรทัด
เมื่อทำการเพิ่มแล้ว ช้อมูลต้องมี 6 บรรทัด ครับ
ผมจึงเพิ่ม code insent
ได้ตามต้องการครับบรรทัดไม่หาย
แต่แปลกใจที่เมื่อ เคอร์เซอร์ อยู่ในเซล H10
ข้อมุลในบรรทัด10 จะหายไป เหลือ 5 บรรทัด
สรุปว่า เมื่อ เคอร์เซอร์ อยู่ใน บรรทัดใดใดที่มีข้อมูล บรรทัดนั้นจะหายไป
ต้องแก้ไขอย่างไรดีครับ มันต้องมี 6 บรรทัด ครับ
จากรูปตำแหน่งที่ เคอร์เซอร์อยู่
3.JPG
จากรูปด้านล่างเมื่อ run แล้วหมายเลข 3 จะหายไป
2.JPG
Re: copyมาวางไม่ได้ครับ
Posted: Mon Jul 27, 2020 11:27 pm
by snasui
yodpao.b wrote: Mon Jul 27, 2020 10:49 pm
สมมุติมี 5 บรรทัด
เมื่อทำการเพิ่มแล้ว ช้อมูลต้องมี 6 บรรทัด ครับ
ผมจึงเพิ่ม code insent

ข้อความนี้ควรจะอธิบายมาด้วยไม่เช่นนั้นผมก็จะตอบตามที่ถาม ซึ่งผมได้ให้อธิบายสิ่งที่ต้องการมาแล้วในโพสต์ที่
#2 ควรจะอธิบายมาให้ครบถ้วนครับ
ตัวอย่างการปรับ Code ครับ
Code: Select all
'Other code
Range("b2:f2").Copy
Range("b7:f7").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Application.CutCopyMode = False
'Other code
Re: copyมาวางไม่ได้ครับ
Posted: Tue Jul 28, 2020 3:58 am
by yodpao.b
' Rows("7:7").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
' Range("b2:f2").Copy Range("b7")
' Application.CutCopyMode = False
Range("b2:f2").Copy
Range("b7:f7").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Application.CutCopyMode = False
จาก code ด้านบน
ดูการทำงานก็เหมือนกันครับ
แต่ทำไหมใช้สูตร 3 บรรทัดบน ข้อมุลถึงหายไปครับ
Re: copyมาวางไม่ได้ครับ
Posted: Tue Jul 28, 2020 9:30 am
by snasui

ลำดับ Code ที่ต่างกันย่อมให้ผลลัพธ์ที่ต่างกันได้ถือเป็นเรื่องปกติ
การเขียน Code ให้คำนึงถึงลำดับเสมอไปครับ
Re: copyมาวางไม่ได้ครับ
Posted: Tue Jul 28, 2020 12:00 pm
by yodpao.b
ขอบคุณครับ