#1
Post
by Supachok » Fri Mar 31, 2023 7:03 pm
เรียน ท่านอาจารย์และผู้รู้
ปล : ไม่มีความเข้าใจในการเขียน VBA มากเท่าไร
ผมกำลังใช้ VBA เพื่อเขียนให้ Excel ทำงานในการแยก sheet และ filter จาก sheet master plan
-- Add sheet ทำได้ แต่มี error ใน sheet สุดท้ายทำให้มี sheet ที่ไม่ต้องการออกมาแต่แก้ ด้วย On Error Resume Next แทน
Worksheets("data base").Select
Range("e1").Select
Application.ScreenUpdating = False
Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0))
ActiveCell.Offset(1, 0).Select
Sheets.Add.Name = ActiveCell.Value
Loop
-- Filter ไม่สามารถเข้าใจ Marco code เพื่อนำไปประยุกต์ปรับแก้ไขได้ จึงเกิดปัญหา filename ในหัวข้อถัดไป
=FILTER('Master plan'!RC:R[38]C[13],'Master plan'!RC:R[38]C=RC[19])" <<< หากสามารถอธิบายหลักให้ผมเข้่าใจได้ R1C1 ช่วยแนะนำที่ครับจะนำไปปรับใช้
ActiveCell.Formula2R1C1 = _
"=FILTER('Master plan'!RC:R[38]C[13],'Master plan'!RC:R[38]C=RC[19])"
-- filename ใน Cell T1 หลังจาก run Code (add sheet) แล้วจะมี sheet สร้างใหม่ออกมา Sheet (Bank,chize,Jen)
Cell T1 =MID(CELL("filename"),FIND("]",CELL("filename"),1)+1,2222) >>> ผลลัพธ์คือทุก sheet ที่สร้างใหม่โดยการ run code ได้ชื่อเดียวกันหมด ทำให้ Criteria ที่ตั้งไว้ไม่ match ในการดึง filter มาแสดง
ActiveCell.Formula2R1C1 = _
"=MID(CELL(""filename""),FIND(""]"",CELL(""filename""),1)+1,2222)"
สิ่งที่ต้องให้ช่วยเหลือแนะนำ
1 .Add sheet Do until empty Cell อย่างไรไม่ให้เกิด error หรือเมื่อเจอ Empty cell แล้วหรือหยุดทำการสร้าง sheet ใหม่ แล้วออกจาก loop
2. Filter สามารถเขียนแบบ VBA ได้อย่างไร เพราะ Code copy จาก marco
3. filename ปกติเคยพบปัญหานี้ ไม่รู้จะแก้อย่างไรให้ Cell แสดงชื่อถูกต้องตาม sheet แต่ละ sheet.
You do not have the required permissions to view the files attached to this post.