หากคุณต้องการอัปเดตเวิร์กชีท 2 เมื่อมีการแก้ไขข้อมูลในเวิร์กชีท 1 คุณสามารถใช้ VBA เพื่อสร้างหน้าผลลัพธ์ที่ปรับปรุงแบบไดนามิก
ฟังก์ชันนี้ถูกเรียกใช้เมื่อใดก็ตามที่มีการแก้ไขข้อมูลในแผ่นงาน 1
ในการอัปเดตข้อมูลตามคอลัมน์อันดับและทำการตั้งสมมติฐานเหล่านี้:
ข้อมูลอยู่ในคอลัมน์เหล่านี้ชื่อ: คอลัมน์ A, อายุ: คอลัมน์ B, เพศ: คอลัมน์ C, หมวดหมู่: คอลัมน์ D, อันดับรวม: คอลัมน์ E
ภายในเวิร์กชีทย่อย _Change ค่าในคอลัมน์ E, คอลัมน์อันดับและถ่ายโอนเนื้อหาแถวหากผู้แข่งขันวางไว้ภายในสี่อันดับแรก
'If data is changed within column 5 (ranking column), repopulate worksheet2
If Target.Column = 5 Then
'Remove all of the old rows except the header
Sheets(2).Rows("2:" & CStr(Sheets(2).UsedRange.Rows.Count)).EntireRow.Delete
'For each row on worksheet1 check if the value in column "E", if the ranking column is less than 4, if it is copy the row onto worksheet2
Dim rowCounter As Integer: rowCounter = 1
For i = 1 To Sheets(1).UsedRange.Rows.Count Step 1
If (Sheets(1).Range("E" & CStr(i)).Value < 4 And Sheets(1).Range("E" & CStr(i)).Value <> "") Then
Sheets(2).Range("A" & CStr(rowCounter + 1)).Value = Sheets(1).Range("A" & CStr(i)).Value
Sheets(2).Range("B" & CStr(rowCounter + 1)).Value = Sheets(1).Range("B" & CStr(i)).Value
Sheets(2).Range("C" & CStr(rowCounter + 1)).Value = Sheets(1).Range("C" & CStr(i)).Value
Sheets(2).Range("D" & CStr(rowCounter + 1)).Value = Sheets(1).Range("D" & CStr(i)).Value
Sheets(2).Range("E" & CStr(rowCounter + 1)).Value = Sheets(1).Range("E" & CStr(i)).Value
rowCounter = rowCounter + 1
End If
Next i
End If
แทรกอัลกอริทึมการเรียงลำดับที่นี่หากจำเป็นหลังจากข้อมูลถูกย้ายแล้ว
หากคุณต้องการรายละเอียดเพิ่มเติมหรือความช่วยเหลือเกี่ยวกับการเรียงลำดับโปรดแจ้งให้เราทราบ