คุณสามารถใช้มาโครเหล่านี้เพื่อติดตามการเปลี่ยนแปลงในช่วงข้อมูลเฉพาะ
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Master
End If
End Sub
บันทึก:
- รหัสนี้จะเรียกใช้แมโคร (Master)เมื่อมีการเปลี่ยนแปลงค่าของเซลล์ในช่วง
ป้อนรหัส VBA ด้านล่างเขียนเป็นโมดูลมาตรฐาน
รหัสนี้จะคัดลอกค่า New / Altered ทุกค่าจากช่วงA1:B100
เข้าสู่ชีตใหม่MasterSheet
โดยไม่เขียนทับข้อมูลเก่า
Sub Master()
Dim sourceSheet As Worksheet
Dim sourceRange As Range
Dim sourceRows As Integer
Set sourceSheet = Worksheets("Sheet1")
sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A"))
Set sourceRange = sourceSheet.Range("A1:B" & sourceRows)
Dim targetSheet As Worksheet
Dim targetRange As Range
Dim targetRows As Integer
Set targetSheet = Worksheets("MasterSheet")
targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A"))
Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":B" & targetRows + 1 + sourceRows)
sourceRange.Copy Destination:=targetRange
End Sub
บันทึก:
- เพื่อการจัดการข้อมูลและไฟล์ที่ดีขึ้นฉันใช้ MACRO สองตัว
- มาโครใช้ใน
COUNTA
การคำนวณว่าแถวมีการใช้งานอย่างไร
- หากคุณมีส่วนหัวของคอลัมน์บนแผ่นงานต้นฉบับและปริญญาโทพวกเขาจะได้รับการทำซ้ำ ดังนั้นคุณอาจต้องการที่จะทำให้การเริ่มต้นที่
sourceRange
A2
ปรับการอ้างอิงเซลล์และชื่อแผ่นงานตามต้องการ