Nájsť a nahradiť makro hodnoty bunky

Nájsť a nahradiť makro hodnoty bunky

Problém

Mám týchto 20 vzorcov (1 na skladový kód) vo svojej tabuľke, ktorá pochádza z etrade

= PROStaticData (2, "mqg.ASX", "2010/08/10; 19/08/2008; 3; pravda; nepravda", "10")

Chcem byť schopný zmeniť dátumy naraz, mám 2 bunky nastavenia hodnoty chcem hľadať, sú v M8 a M9 a chcem ho nahradiť hodnotami v L8 a L9, resp. v tabuľke okrem vyššie uvedeného vzorca z nejakého dôvodu to nebude vyzerať cez vzorec pre to je kód, ktorý používam.

 Sub theone () 'Selection.Replace What: = "ValueToFind", Replacement: = Range ("A1"). Hodnota, LookAt: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = False 'Range ("B1: B2") Vyberte rozsah Selection.Copy ("L8: L9") Vyberte Select.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False Range ( Vyberte Application.CutCopyMode = False Selection.Copy Range ("L8") Vyberte Application.CutCopyMode = False Selection.Copy Cells.Replace Čo: = Rozsah ("M8") Hodnota, nahradenie: = Rozsah ( Hodnota, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace Čo: = Rozsah ("M9") Hodnota, nahradenie: = Range ("L9"). Hodnota, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9") Vyberte Application.CutCopyMode = False Selection.Copy Range ("M8: M9") Vyberte ActiveSheet.Paste End Sub 

Riešenie

Tu je niekoľko pochybností vo vašom makre

príklad

 Rozsah ("M8") Vyberte Application.CutCopyMode = False Selection.Copy 

Túto hodnotu skopírujete, ale nikdy ju neprilepte a nezhodujte s ďalším blokom s L8. Môže byť kód nie je potrebné, alebo možno ste zabudli vložiť. Dôvod, prečo ho nemôžete nahradiť, pretože dátum, ktorý je vo vzorci, je vo formáte RRRR / MM / DD. Dátum, ktorý hľadáte, nie je v tomto formáte. Takže musíte pridať ešte jedno vyhľadávanie a nahradiť, kde hľadáte dátum vo formáte RRRR / MM / DD a nahradiť ho rovnakým spôsobom

 Cells.Replace Čo: = FORMAT (rozsah ("M8"). Hodnota, "RRRR / MM / DD"), nahradenie: = FORMAT (rozsah ("L8"). Hodnota, "RRRR / MM / DD"), LookAt : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False 

Tu je vaša re-pracoval veci.

 Sub theone () Dim sDateFind As String Dim sDateRep As String Range ("B1: B2") Vyberte rozsah Selection.Copy ("L8: L9") Vyberte Select.PasteSpecial Paste: = xlPasteValues, _ Operation: = xlNone, _ SkipBlanks: = False, _ Transpose: = False Range ("M8") Vyberte Application.CutCopyMode = False Selection.Copy Range ("L8") Vyberte Application.CutCopyMode = False Selection.Copy sDateFind = Range ("M8") .Value sDateRep = Rozsah ("L8") Hodnota Cells.Replace Čo: = Rozsah ("M8") Hodnota, _ Nahradenie: = Rozsah ("L8") Hodnota, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace Čo: = Formát (sDateFind, "rrrr / mm / dd"), _ Nahradenie: = Formát (sDateRep, "rrrr / mm" / dd "), _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False sDateFind = Rozsah (" M9 ") Hodnota sDateRep = Rozsah (" L9 ") .Value Cells.Replace Čo: = Rozsah (" M9 ") Hodnota, _ Nahradenie: = Rozsah (" L9 ") Hodnota, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace Čo: = Formát (sDateFind, "rrrr / mm / dd"), _ Nahradenie: = Formát (sDateRep, "rrrr / mm / dd"), _ LookAt : = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9") Vyberte Application.CutCopyMode = False Selection.Copy Range ("M8: Vyberte ActiveSheet.Paste End Sub 

Poznámka

Riešené rizvisa1

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy