ค้นหาและแทนที่มาโครค่าของเซลล์

ค้นหาและแทนที่มาโครค่าของเซลล์

ปัญหา

ฉันมี 20 สูตรเหล่านี้ (1 ต่อรหัสหุ้น) ในสเปรดชีตของฉันที่มาจาก etrade

= PROStaticData (2, "mqg.ASX", "2010/08/10; 2010/08/19; 3; จริง; เท็จ", "10")

ฉันต้องการที่จะเปลี่ยนวันที่ทั้งหมดในครั้งเดียวฉันมี 2 เซลล์การตั้งค่าที่ฉันต้องการที่จะมองหาอยู่ใน M8 และ M9 และฉันต้องการแทนที่ด้วยค่าใน L8 และ L9 ตามลำดับและทำงานได้ทุกที่ ในสเปรดชีตยกเว้นในสูตรด้านบนด้วยเหตุผลบางอย่างมันจะไม่ตรวจสอบสูตรของมันต่อไปนี้คือรหัสที่ฉันใช้

 Sub theone () 'Selection.Replace What: = "ValueToFind", Replacement: = Range ("A1"). ค่า, LookAt: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = เท็จ, ReplaceFormat: = False 'Range ("B1: B2") เลือก Selection.Copy Range ("L8: L9") เลือก Selection.PasteSpecial Paste: = xlPasteValues, การทำงาน: = xlNone, SkipBlanks _: = False, Transpose: = False Range ( "M8") เลือก Application.CutCopyMode = False Selection.Copy Range ("L8") เลือก Application.CutCopyMode = False Selection.Copy Cells.Replace อะไร: = Range ("M8") ค่าเปลี่ยน: = Range ( "L8") ค่า LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = เซลล์เท็จแทนที่อะไร: = ช่วง ("M9") ค่าการแทนที่: = Range ("L9") ค่า LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = ช่วงเท็จ ("L8: L9") เลือก Application.CutCopyMode = False Selection.Copy Range ("M8: M9") เลือก ActiveSheet.Paste End Sub 

สารละลาย

นี่คือข้อสงสัยเล็กน้อยในแมโครของคุณ

ตัวอย่าง

 ช่วง ("M8") เลือก Application.CutCopyMode = False Selection.Copy 

คุณคัดลอกค่านี้ แต่ไม่ควรวางและเหมือนกันกับบล็อกถัดไปด้วย L8 อาจไม่จำเป็นต้องใช้รหัสหรือคุณอาจลืมที่จะวาง เหตุผลที่คุณไม่สามารถแทนที่ได้เพราะวันที่ที่อยู่ในสูตรอยู่ในรูปแบบ YYYY / MM / DD วันที่ที่คุณกำลังค้นหาไม่อยู่ในรูปแบบนั้น ดังนั้นคุณต้องเพิ่มการค้นหาอีกหนึ่งรายการและแทนที่ตำแหน่งที่คุณค้นหาวันที่ในรูปแบบ YYYY / MM / DD และแทนที่ด้วยสิ่งเดียวกัน

 Cells.Replace What: = FORMAT (ช่วง ("M8") ค่า "YYYY / MM / DD"), การแทนที่: = FORMAT (ช่วง ("L8") ค่า "YYYY / MM / DD"), LookAt : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False 

นี่คือสิ่งที่คุณทำงานซ้ำ

 ย่อย theone () Dim sDateFind เป็น String Dim sDateRep เป็นช่วง String ("B1: B2") เลือก Selection.Copy Range ("L8: L9") เลือก Selection.PasteSpecial วาง: = xlPasteValues, _ การดำเนินการ: = xlNone, _ การดำเนินการ: SkipBlanks: = False, _ Transpose: = ช่วงเท็จ ("M8") เลือก Application.CutCopyMode = False Selection.Copy Range ("L8") เลือก Application.CutCopyMode = การเลือกผิด ๆ คัดลอก sDateFind = ช่วง ("M8") .Value sDateRep = Range ("L8"). Value Cells.Replace What: = Range ("M8"). ค่า, _ Replacement: = Range ("L8"). ค่า, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = Cells.Replace เท็จอะไร: = รูปแบบ (sDateFind, "yyyy / mm / dd"), _ การแทนที่: = รูปแบบ (sDateRep, "yyyy / mm) / dd "), _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False sDateFind = ช่วง (" M9 ") ") .Value Cells.Replace What: = Range (" M9 "). ค่า, _ Replacement: = Range (" L9 "). ค่า, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = เซลล์เท็จแทนที่อะไร: = รูปแบบ (sDateFind, "yyyy / mm / dd"), _ Replacement: = รูปแบบ (sDateRep, "yyyy / mm / dd"), _ LookAt : = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = ช่วงเท็จ ("L8: L9") เลือก Application.CutCopyMode = ช่วงการเลือกเท็จ ("M8: M9 "). เลือก ActiveSheet.Paste End Sub 

บันทึก

แก้ไขโดย rizvisa1

บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม