Page 1 of 1

[VBA] looping with new fill

Posted: Thu Aug 08, 2013 11:22 am
by poipoi
สวัสดีครับอาจารย์ทุกท่าน

ผมมีปัญหาเกี่ยวกับการเพิ่มข้อมูลใหม่ให้กับตัวบันทึกข้อมูลครับ

จากไฟล์แนบ ที่ row15 , range C15:G15 จะมีสูตรอยู่ครับ

ปัญหาคือจะให้ user บันทึกข้อมูลลงไปที่ คอมลั่มน์ A และ B เท่านั้นครับ

บันทึกไปเรื่อยๆ ก็ให้มันคัดลอกสูตรที่ Row 15 Range C15:G15 หรือ row สุดท้ายที่มีสูตรติดไว้ครับ

หลังจากนั้นก็ให้มัน paste value เพื่อลบสูตรทิ้งไปครับ

แล้วก็ลบ row ที่ต่อจากสูตรทิ้งไปเผื่อมีอะไรปนมาครับ

หลังจากนั้นก็ให้ทำการใส่สูตรต่อจาก row สุดท้ายที่มีข้อมูลบันทึกอยู่ครับ ( C : G )

ผมได้ลองเขียนดูแล้วแต่ปรากฎว่ามันไม่ค่อยยืดหยุ่นเลยครับ

จึงอยากมอขอคำชี้แนะจากอาจารย์ทุกท่านครับ

ขอบคุณครับ

Re: [VBA] looping with new fill

Posted: Thu Aug 08, 2013 1:27 pm
by bank9597
:tt: vba ผมไม่ถนัด เดี๋ยวรอท่านอื่นมาช่วยดูอีกทีน่ะครับ

Re: [VBA] looping with new fill

Posted: Thu Aug 08, 2013 1:42 pm
by poipoi
ครับผม

ขอบคุณมากครับ

Re: [VBA] looping with new fill

Posted: Thu Aug 08, 2013 3:20 pm
by niwat2811
ไม่ทราบว่าแบบนี้ตรงกับความต้องการไหมครับ

Code: Select all

Sub test1()
Dim lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lr, 1).Select
If Cells(lr, 1) <> "" And Cells(lr, 2) <> "" Then
    Cells(lr, 3).Resize(1, 5).Copy Cells(lr + 1, 3)
    With Cells(lr, 3).Resize(1, 5)
        .Value = .Value
    End With
End If
End Sub
กรอกข้อมูลที่ Column A และ B เสร็จแล้ว Run Macro ชื่อ test1

Re: [VBA] looping with new fill

Posted: Thu Aug 08, 2013 3:36 pm
by poipoi
ไม่สามารถใช้การได้ครับ

มันจะเด้งไปยังคอลั้มน์ A row สุดท้ายที่มีข้อมูลครับ

ขอบคุณครับ

Re: [VBA] looping with new fill

Posted: Thu Aug 08, 2013 8:03 pm
by snasui
:D ลองดูตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub Test0()
    Dim l As Long, lf As Long
    With ActiveSheet
        l = .Range("a" & Rows.Count).End(xlUp).Row
        lf = .Range("c" & Rows.Count).End(xlUp).Row
        If l >= lf Then
            .Range("c" & lf).Resize(l - lf + 2, 5).FillDown
            .Range("c" & lf).Resize(l - lf + 1, 5) _
                = .Range("c" & lf).Resize(l - lf + 1, 5).Value
        End If
    End With
End Sub

Re: [VBA] looping with new fill

Posted: Fri Aug 09, 2013 9:15 am
by poipoi
เรียนอาจารย์ครับ

สามารถใช้การได้ดีครับ เอาไปปรับปรุงนิดหน่อยก้ตรงตามที่ต้องการแล้วครับ ขอบคุณครับ