Page 1 of 1

โค๊ดรับค่าลำดับ sheet ปัจจุบัน

Posted: Sat Sep 30, 2023 1:27 pm
by lekhot
ถ้าเราอยู่่่ใน sheet ใดๆ และต้องการไปคัดลอกข้อมูลจากชีทชื่อ "sheet1"
แล้วนำมาวางใน cell เดิม sheet เดิมที่เลือกเอาไว้ตอนแรก
ต้องใช้โค๊ดไหนรับค่า ลำดับsheet (เลขที่sheet) ปัจจุบันครับ

และใช้โค๊ดไหนรับค่า cell (Range) ที่เลือกไว้ปัจจุบัน
เพื่อที่จะได้เลือก cell เดิมหลังวางค่าที่คัดลอกมาเรียบร้อยแล้ว

Code: Select all

Sub copy4x5()
'
    Dim i As Integer        'ใช้รับค่าลำดับที่ของ activesheet
    Dim x As Range          'ใช้รับค่าตำแหน่ง activecell ปัจจุบัน
    
''' ต้องการทำหนดให้ i รับค่าลำดับของ sheet ของ activecell
    
    Sheets("sheet1").Select
    Rows("1:22").Select
    Selection.Copy
    
    Sheets("i").Select        '' เลือก sheet ลำดับที่ i
    Selection.Insert Shift:=xlDown      '' วางค่าที่copyมาจาก sheet1
    
''' เลือก cell ที่บันทึกไว้ในค่า X (cellที่เลือกไว้ตั้งแต่แรก)
End Sub

Re: โค๊ดรับค่าลำดับ sheet ปัจจุบัน

Posted: Sat Sep 30, 2023 3:07 pm
by lekhot
ทำได้แล้วครับ
ใช้เป็นชื่อชีท ไม่ได้ใช้ลำดับเลขชีทครับ
i = ActiveSheet.Name

Code: Select all

Sub copy4x5()
'
    Dim i As String        'ใช้รับค่าลำดับที่ของ activesheet
    Dim x As Range          'ใช้รับค่าตำแหน่ง activecell ปัจจุบัน
    

    i = ActiveSheet.Name        ''' ให้ i รับค่าชื่อ sheet ของ activesheet
    Sheets("sheet1").Select
    Rows("1:22").Select
    Selection.Copy
    
    Sheets(i).Select        '' เลือก sheet i
    Selection.Insert Shift:=xlDown      '' วางค่าที่copyมาจาก sheet1
    

End Sub
ส่วนให้เลือก cell หลังจากแทรกข้อมูลที่copyมา
จริงๆมันก็อยู่ที่เดิมครับ

Re: โค๊ดรับค่าลำดับ sheet ปัจจุบัน

Posted: Sat Sep 30, 2023 7:40 pm
by jirakorn.png
สวัสดีครับ ถ้าต้องการลำดับเลขชีท ใช้คำสั่งนี้ได้ครับผม

Dim i As Integer
i = ActiveSheet.Index

นอกจากนี้ บรรทัดสุดท้ายสามารถใช้โค้ดด้านล่าง เพื่อออกจาก mode copy นะครับ

Application.CutCopyMode = False

Re: โค๊ดรับค่าลำดับ sheet ปัจจุบัน

Posted: Fri Oct 06, 2023 5:46 pm
by lekhot
ขอบคุณ คุณJirakorn มากๆครับ