Finn og erstatt celleverdig makro

Finn og erstatt celleverdig makro

Utgave

Jeg har disse 20 formlene (1 per aksjekode) i regnearket mitt som kommer fra etrade

= PROStaticData (2, "mqg.ASX", "2010/08/10; 2010/08/19; 3; True; False"; "10")

jeg vil kunne endre datoene på en gang, jeg har de 2 cellene som er satt opp, de verdiene jeg vil se etter er i M8 og M9, og jeg vil erstatte den med verdiene i henholdsvis L8 og L9, og dette fungerer bra hvor som helst i regnearket bortsett fra i formelen ovenfor, av en eller annen grunn, vil det ikke se gjennom formelen for det følgende er koden jeg bruker.

 Subone () 'Selection.Replace What: = "ValueToFind", Erstatning: = Range ("A1"). Verdi, LookAt: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = False, ReplaceFormat: = False, ReplaceFormat: = False Range ("B1: B2"). Velg Selection.Copy Range ("L8: L9"). Velg Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False Range "M8"). Velg Application.CutCopyMode = False Selection.Copy Range ("L8"). Velg Application.CutCopyMode = False Selection.Copy Cells.Replace What: = Range ("M8"). Verdi, erstatning: = Range "L8"). Verdi, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Range ("M9"). Verdi, erstatning: = Range ("L9"). Verdi, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9"). Velg Application.CutCopyMode = False Selection.Copy Range ("M8: M9"). Velg ActiveSheet.Paste End Sub 

Løsning

Her er få tvil i makroen din

Eksempel

 Range ("M8"). Velg Application.CutCopyMode = False Selection.Copy 

Du kopierer denne verdien, men aldri lim den inn og samme med neste blokk med L8. Det kan hende at kode ikke er nødvendig, eller kanskje du har glemt å lim inn. Grunnen til at du ikke kan erstatte den fordi datoen i formelen er i format YYYY / MM / DD. Datoen du søker etter er ikke i det formatet. Så du må legge til et nytt søk og erstatte hvor du søker etter dato i YYYY / MM / DD-format og erstatte det samme

 Cells.Replace What: = FORMAT (Range ("M8"). Verdi, "ÅÅÅÅ / MM / DD"), Erstatning: = FORMAT (Range ("L8"). Verdi, "ÅÅÅÅ / MM / DD"), LookAt : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False 

Her er dine gjenarbeidte ting.

 Undertone () Dim sDateFind Som String Dim sDateRep Som String Range ("B1: B2"). Velg Selection.Copy Range ("L8: L9"). Velg Selection.PasteSpecial Paste: = xlPasteValues, _ Operasjon: = xlNone, _ SkipBlanks: = False, _ Transpose: = False Range ("M8"). Velg Application.CutCopyMode = False Selection.Copy Range ("L8"). Velg Application.CutCopyMode = False Selection.Copy sDateFind = Range ("M8") .Value sDateRep = Range ("L8"). Verdi Cells.Replace Hva: = Range ("M8"). Verdi, _ Erstatning: = Range ("L8"). Verdi, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Format (sDateFind, "yyyy / mm / dd"), _ Erstatning: = Format (sDateRep, "yyyy / mm / dd "), _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False sDateFind = Range (" M9 "). Verdi sDateRep = Range ") .Value Cells.Replace Hva: = Range (" M9 "). Verdi, _ Erstatning: = Range (" L9 "). Verdi, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Format (sDateFind, "yyyy / mm / dd"), _ Erstatning: = Format (sDateRep, "yyyy / mm / dd"), _ LookAt : = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9"). Velg Application.CutCopyMode = False Selection.Copy Range ("M8: M9 "). Velg ActiveSheet.Paste End Sub 

Merk

Løst av rizvisa1

Forrige Artikkel Neste Artikkel

Beste Tips