Cari dan gantikan makro nilai sel
Cari dan gantikan makro nilai sel
Isu
Saya mempunyai 20 formula (1 setiap kod saham) dalam spreadsheet saya yang berasal dari etrade
= PROStaticData (2, "mqg.ASX", "2010/08/10; 2010/08/19; 3; Benar; Salah", "10")
saya ingin dapat menukar tarikh sekaligus, saya mempunyai 2 sel persediaan nilai-nilai yang saya ingin cari berada di M8 dan M9 dan saya mahu menggantikannya dengan nilai-nilai di L8 dan L9 masing-masing dan ini berfungsi dengan baik di mana-mana sahaja dalam spreadsheet kecuali dalam formula di atas untuk sebab tertentu ia tidak akan melihat formula untuknya yang berikut adalah kod yang saya gunakan.
= "ValueToFind", Penggantian: = Range ("A1"). Nilai, Lihat: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = Pilih Selection.Copy Range ("L8: L9"). Pilih Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = Range False ( Pilih "Application.CutCopyMode = Seleksi False.Copy Range (" L8 "). Pilih Application.CutCopyMode = Pilihan False.Copy Cells.Replace Apa: = Range (" M8 "). "L8"). Nilai, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Range ("M9" = Range ("L9") Nilai, Lihat: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = Range False ("L8: L9") Pilih Application.CutCopyMode = Pilihan Pemilihan False.Copy Range ("M8: M9"). Pilih Sub Ends ActiveSheet.Paste
Penyelesaian
Berikut adalah beberapa keraguan dalam makro anda
Contoh
Julat ("M8"). Pilih Application.CutCopyMode = Pemilihan Salah.Copy
Anda menyalin nilai ini, tetapi jangan sekali paste dan sama dengan blok seterusnya dengan L8. Mungkin kod tidak diperlukan atau mungkin anda terlupa untuk tampal. Sebabnya anda tidak dapat menggantikannya kerana, tarikh yang ada dalam formula adalah dalam format YYYY / MM / DD. Tarikh yang anda cari tidak dalam format itu. Jadi anda perlu menambah satu lagi carian dan gantikan di mana anda mencari tarikh dalam format YYYY / MM / DD dan ganti sama
Nilai-nilai, "YYYY / MM / DD"), Penggantian: = FORMAT (Julat ("L8") Nilai, "YYYY / MM / DD"), LookAt : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = False
Berikut adalah perkara yang anda buat semula.
Pilih Selection.Copy Range ("L8: L9"). Pilih Selection.PasteSpecial Paste: = xlPasteValues, _ Operation: = xlNone, _ SelectBlackBlanks: = False, _ Transpose: = Range False ("M8") Select Application.CutCopyMode = Selection False.Copy Range ("L8") Select Application.CutCopyMode = Selection False.Copy sDateFind = Range ("M8" Nilai Sel.Replace Apa: = Julat ("M8"). Nilai, _ Penggantian: = Julat ("L8"). Nilai, _ xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Format (sDateFind, "yyyy / mm / dd"), _ Replacement: = Format (sDateRep, "yyyy / mm = False, _ SearchFormat: = False, _ ReplaceFormat: = False sDateFind = Range ("M9"). Nilai sDateRep = Range ("L9 = "Range (" M9 ") Nilai, _ Penggantian: = Julat (" L9 "). Nilai, _ 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: = Range False ("L8: L9") Pilih Application.CutCopyMode = Selection False.Copy Range ("M8: M9 "). Pilih Sub Akhir End ActiveSheet.Paste
Catatan
Diselesaikan oleh rizvisa1