Page 1 of 1

ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 10:50 am
by liveday
เรียน อาจารย์ทุกท่าน

ผมต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ ต้องทำอย่างไรครับ

ขอบคุณครับ

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 11:23 am
by puriwutpokin
ลองปรับเป็น

Code: Select all

Sub Paste()
    Dim irRange As Variant
    Dim i As Integer, rw As Long
    irRange = Array("B9", "B10", "B11", _
        "B12", "B13", "B15", "B16", _
        "B17", "B18", "B19", "B20", "B21", _
        "B22", "B23", "B24", "B25", "B26")
    rw = Worksheets("Database").Range("b" & Rows.Count).End(xlUp).Row + 1
    For i = 0 To UBound(irRange)
        With Worksheets("Database")
            .Range("b" & rw).Offset(0, i).Value = Sheets("Input").Range(irRange(i)).Value
        End With
    ActiveWorkbook.Worksheets("Database").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Database").Sort.SortFields.Add Key:=Range("D3:D3") _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Database").Sort
        .SetRange Range("A3:R1000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Next i
End Sub

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 12:58 pm
by liveday
puriwutpokin wrote:ลองปรับเป็น

Code: Select all

Sub Paste()
    Dim irRange As Variant
    Dim i As Integer, rw As Long
    irRange = Array("B9", "B10", "B11", _
        "B12", "B13", "B15", "B16", _
        "B17", "B18", "B19", "B20", "B21", _
        "B22", "B23", "B24", "B25", "B26")
    rw = Worksheets("Database").Range("b" & Rows.Count).End(xlUp).Row + 1
    For i = 0 To UBound(irRange)
        With Worksheets("Database")
            .Range("b" & rw).Offset(0, i).Value = Sheets("Input").Range(irRange(i)).Value
        End With
    ActiveWorkbook.Worksheets("Database").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Database").Sort.SortFields.Add Key:=Range("D3:D3") _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Database").Sort
        .SetRange Range("A3:R1000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Next i
End Sub
ได้นำมาใช้ ผลลัพท์ยังเหมือนเดิม ข้อมูลยังเรียงลำดับจากบนไปล่างอยู่ครับ

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 1:10 pm
by puriwutpokin
ใช่ผลลัพธ์ตามไฟล์แนบหรือไม่ ครับ

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 1:38 pm
by liveday
puriwutpokin wrote:ใช่ผลลัพธ์ตามไฟล์แนบหรือไม่ ครับ
ถ้าเป็นการคีย์ข้อมูลเข้าไปใหม่ได้ครับ แต่ถ้ามีข้อมูลเก่าที่มีอยู่แล้วพอนำมาใช้งาน ยังไปอยู่บรรทัดล่างเหมือนเดิมครับ

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 1:46 pm
by puriwutpokin
ไม่ได้ใจได้เป็นช่วงของข้อมูลตาม ข้อมูลจริงหรือเปล่าครับ

Code: Select all

.SetRange Range("A3:R1000")

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 1:57 pm
by liveday
ใช้กับข้อมูลเก่าครับ พอบันทึกจะไปอยู่ด้านล่างเหมือนเดิมครับ

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 2:17 pm
by puriwutpokin
ลองปรับตามนี้ครับ

Code: Select all

Sub Paste()
    Dim irRange As Variant
    Dim i As Integer, rw As Long
    irRange = Array("B9", "B10", "B11", _
        "B12", "B13", "B15", "B16", _
        "B17", "B18", "B19", "B20", "B21", _
        "B22", "B23", "B24", "B25", "B26")
      Sheets("Database").Select
    Rows("3:3").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Sheets("Input").Select
    rw = Worksheets("Database").Range("B3").Row
    For i = 0 To UBound(irRange)
        With Worksheets("Database")
            .Range("b" & rw).Offset(0, i).Value = Sheets("Input").Range(irRange(i)).Value
        End With
    Next i
End Sub

Re: ต้องการบันทึกข้อมูลใหม่ ให้อยู่ด้านบนเสมอ

Posted: Thu Sep 15, 2016 3:07 pm
by liveday
ได้ตามต้องการครับ ขอบคุณมากครับ