
หากโพสต์แล้วไม่ต้องโพสต์ซ้ำ ที่โพสต์ไว้ผมลบไปแล้วครับ
ตัวอย่างการปรับ Code ตามด้านล่างครับ
Code: Select all
Sub Add_sheet()
' On Error Resume Next
Worksheets("data base").Select
Range("e1").Select
Application.ScreenUpdating = False
Do While Not IsEmpty(ActiveCell.Offset(1, 0)) 'And IsEmpty(ActiveCell.Offset(1, 0))
ActiveCell.Offset(1, 0).Select
Sheets.Add.Name = ActiveCell.Value
'create filename each sheet
Range("T1").Select
' ActiveCell.Formula2R1C1 = _
"=MID(CELL(""filename""),FIND(""]"",CELL(""filename""),1)+1,2222)"
Range("T1").Value = ActiveSheet.Name
'create filter formula
Range("a1").Select
ActiveCell.Formula2R1C1 = _
"=FILTER('Master plan'!RC:R[38]C[13],'Master plan'!RC:R[38]C=RC[19])"
Worksheets("data base").Activate
Loop
Application.ScreenUpdating = False
End Sub
ระบบการอ้างอิงแบบ R1C1 คือการอ้างอิงบรรทัดและแถวโดยใช้เซลล์ที่ Active อยู่ ณ ปัจจุบันเป็นเกณฑ์ เช่น
RC:R[38]C[13] หมายถึงช่วงเซลล์ มีขอบเขตจากเซลล์ปัจจุบันถึงบรรทัดที่ 38 ถัดไปด้านล่างและถึงคอลัมน์ที่ 13 ถัดไปด้านขวาจากเซลล์ปัจจุบัน
ตัวเลขในก้ามปูมีโอกาสที่จะเป็นลบได้ หากเป็นลบก็จะเป็นทิศทางตรงกันข้าม สิ่งสำคัญจะต้องทราบว่าเซลล์ปัจจุบันคือเซลล์ไหน ไม่เช่นนั้นข้อมูลมีโอกาสผิดพลาดได้มากครับ