Găsiți și înlocuiți macro-ul valorii celulare

Găsiți și înlocuiți macro-ul valorii celulare

Problema

Am aceste 20 de formule (1 pentru fiecare cod stoc) în foaia mea de calcul care provin de la etrade

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

vreau să pot schimba datele toate dintr-o dată, am 2 celule de configurare valorile pe care vreau să le caut sunt în M8 și M9 și vreau să-l înlocuiască cu valorile în L8 și, respectiv, L9 și acest lucru merge bine oriunde în foaia de calcul, cu excepția formulei de mai sus, dintr-un motiv în care nu se va uita prin formula pentru el, codul pe care îl folosesc este următorul.

 (*) * Valoare, LookAt: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = "Selectați Selection.PasteSpecial Paste: = xlPasteValues, Operație: = xlNone, SkipBlanks _: = False, Transpose: = False Range (" B8: L9 " "Selectați Application.CutCopyMode = False Selection.Copy Range (" L8 ") Selectați Application.CutCopyMode = False Selection.Copy Cells.Replace Ce: = Interval (" M8 ") Valoare, Înlocuire: "L8") Valoare, LookAt: = _XlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Range ("M9" = Valoare, LookAt: = _XlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9") Select Application.CutCopyMode = False Selection.Copy Range ("M8: M9") Selectați ActiveSheet.Paste End Sub 

Soluţie

Iată câteva îndoieli în macro-ul dvs.

Exemplu

 Domeniul ("M8") Selectați Application.CutCopyMode = False Selection.Copy 

Copiați această valoare, dar niciodată nu o lipiți și aceeași cu următorul bloc cu L8. Poate fi codul nu este necesar sau poate ați uitat să lipiți. Motivul pentru care nu îl puteți înlocui, deoarece data în formula este în formatul AAAA / MM / DD. Data pe care o căutați nu este în acest format. Deci, trebuie să adăugați încă o căutare și să înlocuiți unde căutați data în format AAAA / MM / DD și să o înlocuiți

 Celula.Replace Ce: = FORMAT (intervalul "M8") Valoare "YYYY / MM / DD"), Înlocuire: = FORMAT : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False 

Iată lucrurile tale re-lucrate.

 ("L8: L9") Selectați Selection.PasteSpecial Paste: = xlPasteValues, _ Operație: = xlNone, _ Selectați Selection.Copy Range ("L8: L9" Setați Application.CutCopyMode = False Selection.Copy Range ("L8") Selectați Application.CutCopyMode = False Selection.Copy sDateFind = Interval ("M8") .Value sDateRep = Intervalul ("L8") Valoare Cells.Replace Ce: = Interval ("M8") Valoare, _ Replacement: = Range ("L8"), LookAt: = xlPart, _ SearchOrder: xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace Ce: = Format (sDateFind, "yyyy / mm / dd"), Replacement: = Format (sDateRep, yyyy / mm / dd "), _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _Format de căutare: = False, _ ReplaceFormat: = False sDateFind = Interval (" M9 " "), Valoarea, _ Inlocuire: = Intervalul (" L9 ") Valoare, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _Format de căutare: = False, _ ReplaceFormat: = False Cells.Replace Ce: = Format (sDateFind, "yyyy / mm / dd"), _ Înlocuire: = Format (sDateRep, yyyy / : = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _Format de căutare: = False, _ ReplaceFormat: = False Range ("L8: L9") Selectați Application.CutCopyMode = M9 "). Selectați ActiveSheet.Paste End Sub 

Notă

Rezolvată de rizvisa1

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi