Atrodiet un nomainiet šūnu vērtības makro

Atrodiet un nomainiet šūnu vērtības makro

Izdevums

Man ir šīs 20 formulas (1 par akciju kodu) savā izklājlapā, kas nāk no etrade

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

es gribu, lai varētu mainīt datumus visus uzreiz, man ir 2 šūnas iestatīt vērtības, kuras es gribu meklēt, ir M8 un M9, un es vēlos to aizstāt ar L8 un L9 vērtībām, un tas darbojas labi jebkur izklājlapā, izņemot iepriekšminēto formulu, kāda iemesla dēļ tā neizskatīs tā formulu, ko izmanto šāds kods.

 Sub theone () 'Selection.Replace What: = "ValueToFind", nomaiņa: = Range ("A1") Vērtība, LookAt: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = Nepareizs diapazons ("B1: B2") Izvēlieties Selection.Copy Range ("L8: L9"). Atlasiet Selection.Paste (Īpaši ielīmēt): = xlPasteValues, Darbība: = xlNone, SkipBlanks _: = False, Transponēt: = False Range ( Atlasiet Application.CutCopyMode = False Selection.Copy Range ("L8") Izvēlieties Application.CutCopyMode = False Selection.Copy Cells.Izstājiet to: = Range ("M8"). Vērtība, nomaiņa: = diapazons ( Vērtība, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Range ("M9") Vērtība, nomaiņa: = Range ("L9"). Vērtība, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9"). Izvēlieties Application.CutCopyMode = False Selection.Copy Range ("M8: M9") Izvēlieties ActiveSheet.Paste End Sub 

Risinājums

Šeit ir dažas šaubas par jūsu makro

Piemērs

 Diapazons ("M8") Izvēlieties Application.CutCopyMode = False Selection.Copy 

Jūs kopējat šo vērtību, bet nekad nelīmējiet to un to pašu ar nākamo bloku ar L8. Var būt kods nav vajadzīgs vai varbūt esat aizmirsis ielīmēt. Iemesls, kāpēc jūs to nevarat aizstāt, jo datums, kas ir formulā, ir formātā YYYY / MM / DD. Datums, kuru meklējat, nav šādā formātā. Tāpēc jums ir nepieciešams pievienot vēl vienu meklēšanu un aizstāt to, kur meklējat datumu YYYY / MM / DD formātā, un nomainiet tajā pašā vietā

 Cells.Replace What: = FORMAT (diapazons ("M8"). Vērtība, "YYYY / MM / DD"), nomaiņa: = FORMAT (diapazons ("L8"). Vērtība, "YYYY / MM / DD"), LookAt : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False 

Šeit ir jūsu atkārtoti apstrādātās lietas.

 Apakšpunkts () Dim sDateFind kā virkne Dim sDateRep kā virknes diapazons ("B1: B2") Izvēlieties Selection.Copy Range ("L8: L9"). Atlasiet Selection.PasteSpecial Paste: = xlPasteValues, _ Darbība: = xlNone, _ SkipBlanks: = False, _ Transpose: = False Range ("M8") Izvēlieties Application.CutCopyMode = False Selection.Copy Range ("L8") Izvēlieties Application.CutCopyMode = False Selection.Copy sDateFind = Range ("M8") .Value sDateRep = Range ("L8") Vērtības šūnas.Izstājiet to: = diapazons ("M8"). Vērtība, _ nomaiņa: = diapazons ("L8"). Vērtība, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Format (sDateFind, "yyyy / mm / dd"), _ Replacement: = Format (sDateRep, "yyyy / mm") / dd "), _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False sDateFind = Range (" M9 ") Vērtība sDateRep = Range (" L9 ") .Value Cells.Replace What: = Range (" M9 ") Vērtība, _ Replacement: = Range (" L9 ") Vērtība, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Format (sDateFind, "yyyy / mm / dd"), _ Replacement: = Format (sDateRep, "yyyy / mm / dd"), _ LookAt : = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9"). Izvēlieties Application.CutCopyMode = False Selection.Copy Range ("M8: Izvēlieties ActiveSheet.Paste End Sub 

Piezīme

Atrisinājis rizvisa1

Iepriekšējais Raksts Nākamais Raksts

Top Padomi