Page 1 of 1

การทำงานกับ ActiveCell

Posted: Sun Mar 22, 2020 9:12 pm
by gokky
มีคำถามเกี่ยวกับการทำงานกับ Active Cell ค่ะ

ข้อ 1 ต้องการให้ข้อมูลใน Active Cell ใน Sheet "Niguri" สดงใน Sheet "Summary Report" ด้วยการใช้ .Value แทนการ Copy & Paste
แต่ว่าถ้ากำหนด Range เป็น ActiveCell มันจะ Error ค่ะ
Code ที่มีปัญหาคือ => ActiveCell.Value = Sheets("Niguri").ActiveCell.Value

ข้อ 2 ต้องการจะ Sum ข้อมูลใน Sheet "Niguri" มาแสดงใน Sheet "Summary Report" โดยใช้reference เป็น ActiveCell ไม่ใช่ชื่อ Cell
เนื่องจากจะใช้คำสั่งLoop เพราะปริมาณข้อมูลอีกหลายบรรทัด แต่พอใช้ ActiveCell.Offset แล้วมัน Error ค่ะ
Code ที่มีปัญหาคือ => ActiveCell.Offset(0, 6).Formula = "=Sum(Niguri!" & ActiveCell.Offset(-1, 6) + ActiveCell.Offset(0, 1) & ")"

Code: Select all

Sub copy()

Worksheets("Summary Report").Activate
Sheets("Summary Report").Range("G3:L3").Value = Sheets("Niguri").Range("G4:J4").Value
Range("A5").Select

Worksheets("Niguri").Activate
Range("B6").Select
   
Do Until ActiveCell = ""

    Worksheets("Summary Report").Activate
    ActiveCell.Value = Sheets("Niguri").ActiveCell.Value
    
    Worksheets("Summary Report").Activate
ActiveCell.Offset(0, 6).Formula = "=Sum(Niguri!" & ActiveCell.Offset(-1, 6) + ActiveCell.Offset(0, 1) & ")"

Loop
   
End Sub



Re: การทำงานกับ ActiveCell

Posted: Sun Mar 22, 2020 10:11 pm
by snasui
:D ใช้ตัวแปรเข้ามาช่วยได้ครับ

ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub copy()
    Dim a As Range
    Worksheets("Summary Report").Activate
    Sheets("Summary Report").Range("G3:L3").Value = Sheets("Niguri").Range("G4:J4").Value
    Range("A5").Select
    
    Worksheets("Niguri").Activate
    Set a = Range("B6")
       
    Do Until ActiveCell = ""
    
        Worksheets("Summary Report").Activate
        ActiveCell.Value = a.Value
        
        Worksheets("Summary Report").Activate
        ActiveCell.Offset(0, 6).Formula = "=Sum(Niguri!" & ActiveCell.Offset(-1, 6) + ActiveCell.Offset(0, 1) & ")"
    Loop
End Sub