Hücre değeri makrosunu bul ve değiştir

Hücre değeri makrosunu bul ve değiştir

Konu

E-tablomda etrade'den gelen bu 20 formüle (stok kodu başına bir adet) sahibim.

= PROStaticData (2, "mqg.ASX", "2010/08/10; 2010/08/19; 3; Doğru; Yanlış", "10")

tarihleri ​​bir kerede değiştirebilmek istiyorum, 2 hücreyi aramak istediğim değerleri sırasıyla M8 ve M9 olarak ayarlıyorum ve bunları sırasıyla L8 ve L9'daki değerlerle değiştirmek istiyorum ve bu her yerde iyi çalışıyor Elektronik tablodaki bazı nedenlerden dolayı yukarıdaki formül dışında, formülde bakmayacağım, aşağıda kullanıyorum.

 Altında () 'Selection.Replace What: = "ValueToFind", Değiştirme: = Range ("A1"). Value, LookAt: = xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, ReplaceFormat: = False 'Range ("B1: B2"). Selection.Copy Range'i ("L8: L9") seçin. Selection.PasteÖzel Yapıştır: = xlPasteValues, İşlem: = xlNone, SkipBlanks _: = False, Transpose: = False Range (Yanlış Aralığı (= Yanlış) "M8"). Application.CutCopyMode = Yanlış Seçim.Copy Aralığı'nı ("L8") seçin. Application.CutCopyMode = Yanlış Seçim. Copy Hücreleri'ni seçin ("L8"). Application.CutCopyMode = Yanlış Seçim. Copy Hücreleri seçin.Replace Ne: = Aralık ("M8"). Değer, Değiştirme: = Aralık ( "L8"). Value, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = Yanlış Hücreler.Replace Ne: = Aralık ("M9"). Değer, Değiştirme: = Aralık ("L9") Değer, LookAt: = _ xlPart, SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = False, _ ReplaceFormat: = Yanlış Aralık ("L8: L9"). Application.CutCopyMode = seçeneğini seçin Yanlış Seçim. Kopyalama Aralığı ("M8: M9"). ActiveSheet.Paste End Sub öğesini seçin. 

Çözüm

Makroda birkaç şüphe var

Örnek

 Aralık ("M8"). Uygulama Seçin.CutCopyMode = Yanlış Seçim. 

Bu değeri kopyalarsınız, ancak hiçbir zaman L8 ile bir sonraki bloğa yapıştırmayın. Kod gerekli olmayabilir ya da belki yapıştırmayı unuttum. Bunu değiştirememenizin nedeni, formülde olan tarihin YYYY / MM / DD biçiminde olmasıdır. Aradığınız tarih bu biçimde değil. Bu yüzden, bir arama daha eklemeniz ve YYYY / AA / GG biçiminde tarihi aradığınız yeri değiştirmek ve aynı şekilde değiştirmek zorundasınız.

 Hücreler.Nerede Ne: = FORMAT (Aralık ("M8"). Değer, "YYYY / MM / DD"), Değiştirme: = FORMAT (Aralık ("L8"). Değer, "YYYY / MM / DD"), LookAt : = _ xlPart, SearchOrder: = xlByRows, MatchCase: = Yanlış, SearchFormat: = Yanlış, _ ReplaceFormat: = Yanlış 

İşte yeniden çalıştığın şey.

 Altında () Dize olarak Dim sDateFind Dize olarak Dim sDateRep Dize Aralığı ("B1: B2"). Selection.Copy Aralığı'nı ("L8: L9") seçin. Selection.PasteSpecial Yapıştır: = xlPasteValues, _ Operation: = xlNone, _ SkipBlanks: = False, _ Transpose: = False Range ("M8"). Application.CutCopyMode = False Selection.Copy Range ("L8") seçeneğini seçin. Application.CutCopyMode = False Selection.Copy sDateFind = Range ("M8") öğesini seçin. .Value sDateRep = Aralık ("L8"). Değer Hücreleri.Replace Ne: = Aralık ("M8") Değer, _ Değiştirme: = Aralık ("L8") Değer, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = Yanlış Hücreler.Replace Ne: = Biçim (sDateFind, "yyyy / mm / dd"), _ Değiştirme: = Biçim (sDateRep, "yyyy / mm" / dd "), _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False sDateFind = Aralık (" M9 "). Değer sDateRep = Aralık (" L9 ") ") .Value Cells.Replace Ne: = Aralık (" M9 "). Değer, _ Değiştirme: = Aralık (" L9 "). Değer, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Cells.Replace What: = Biçim (sDateFind, "yyyy / mm / dd"), _ Değiştirme: = Biçim (sDateRep, "yyyy / mm / dd"), _ LookAt : = xlPart, _ SearchOrder: = xlByRows, _ MatchCase: = False, _ SearchFormat: = False, _ ReplaceFormat: = False Range ("L8: L9"). Application.CutCopyMode = False Selection.Copy Range ("M8:" seçeneğini seçin. M9 "). ActiveSheet.Paste End Sub öğesini seçin. 

Not

Rizvisa1 tarafından çözüldü

Önceki Makale Sonraki Makale

En Ipuçları