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
:D ช่วยอธิบายว่างานนี้ต้องการผลลัพธ์เป็นอย่างไรครับ

ต้องการคลิกเซลล์ที่มีตัว 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 ครับ ดังรูป
:D ตัวอย่าง 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
:lol: ข้อความนี้ควรจะอธิบายมาด้วยไม่เช่นนั้นผมก็จะตอบตามที่ถาม ซึ่งผมได้ให้อธิบายสิ่งที่ต้องการมาแล้วในโพสต์ที่ #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
:D ลำดับ Code ที่ต่างกันย่อมให้ผลลัพธ์ที่ต่างกันได้ถือเป็นเรื่องปกติ

การเขียน Code ให้คำนึงถึงลำดับเสมอไปครับ

Re: copyมาวางไม่ได้ครับ

Posted: Tue Jul 28, 2020 12:00 pm
by yodpao.b
ขอบคุณครับ