Note: The other languages of the website are Google-translated. Back to English

Hücre değiştiğinde tarih ve saat otomatik olarak nasıl kaydedilir?

Manuel olarak statik tarih ve saat eklemek veya bir formülle sistem saatiyle değişen dinamik bir tarih eklemek bizim için kolaydır. Değerleri değiştirdiğinizde veya girdiğinizde tarih ve saati otomatik olarak kaydetmek istiyorsanız, bu sorunun üstesinden gelmek biraz farklı olabilir. Ancak bu yazıda aşağıdaki adımlarla bu görevi çözebilirsiniz.

VBA kodu ile hücre değiştiğinde tarih ve saati otomatik olarak kaydedin

Office Sekmesi Office'te Sekmeli Düzenleme ve Göz Atmayı Etkinleştirin ve İşinizi Çok Daha Kolay Hale Getirin ...
Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır
  • Her Şeyi Yeniden Kullanın: En çok kullanılan veya karmaşık formülleri, grafikleri ve diğer her şeyi favorilerinize ekleyin ve gelecekte bunları hızla yeniden kullanın.
  • 20'den fazla metin özelliği: Metin Dizesinden Sayı Ayıklama; Metin Parçalarını Çıkarın veya Çıkarın; Sayıları ve Para Birimlerini İngilizce Kelimelere dönüştürün.
  • Araçları Birleştirme: Birden Fazla Çalışma Kitabı ve Çalışma Sayfası Bir Arada; Veri Kaybetmeden Birden Çok Hücre / Satır / Sütunu Birleştirme; Yinelenen Satırları ve Toplamı Birleştir.
  • Araçları Böl: Verileri Değere Göre Birden Çok Sayfaya Bölün; Birden Çok Excel, PDF veya CSV Dosyasına Bir Çalışma Kitabı; Birden Çok Sütuna Bir Sütun.
  • Atlamayı Yapıştır Gizli / Filtrelenmiş Satırlar; Say ve Toplam Arka Plan Rengine Göre; Kişiselleştirilmiş E-postaları Birden Fazla Alıcıya Toplu Olarak Gönderin.
  • Süper Filtre: Gelişmiş filtre şemaları oluşturun ve herhangi bir sayfaya uygulayın; Sırala hafta, gün, sıklık ve daha fazlasına göre; filtre kalın, formüller, yorum ...
  • 300'den fazla güçlü özellik; Office 2007-2021 ve 365 ile çalışır; tüm dilleri destekler; Kuruluşunuzda veya kuruluşunuzda kolay devreye alma.

ok mavi sağ balon VBA kodu ile hücre değiştiğinde tarih ve saati otomatik olarak kaydedin

Örneğin, bir dizi değerim var ve şimdi, Sütun B'de yeni değerleri değiştirdiğimde veya yazdığımda, gösterilen aşağıdaki ekran görüntüsü gibi Sütun C'de geçerli tarih ve saati otomatik olarak kaydetmesini istiyorum:

doc-güncelleme-zaman-değer-değişiklikleri-1

Bu görevi aşağıdaki VBA kodu ile tamamlayabilirsiniz. Lütfen şunu yapın:

1. Basılı tutun ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic penceresi.

2. Ardından soldan kullanılmış çalışma sayfanızı seçin Proje Gezginiaçmak için çift tıklayın modülve ardından aşağıdaki VBA kodunu kopyalayıp boş Modüle yapıştırın:

VBA kodu: Hücre değiştiğinde tarih ve saati otomatik olarak kaydedin

Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

doc-güncelleme-zaman-değer-değişiklikleri-1

3. Ardından çalışma sayfasına dönmek için bu kodu kaydedin ve kapatın, şimdi hücre değerini değiştirdiğinizde veya Sütun B'ye yeni veri yazdığınızda, tarih ve saat otomatik olarak Sütun C'ye kaydedilecektir.

Notlar:

1. Yukarıdaki kodda, "B: B"Bu komut dosyasındaki hücre değerlerini değiştirmek istediğiniz diğer herhangi bir sütuna: WorkRng = Kesişim (Application.ActiveSheet.Range ("B: B"), Hedef) ayarla.

2. Bununla xOffsetColumn = 1 komut dosyası, değişen değer sütununuzun yanındaki ilk sütuna tarih ve saati ekleyebilir ve güncelleyebilirsiniz, 1 sayısını 2,3,4,5 gibi diğer sayılarla değiştirebilirsiniz ... bu, tarihin ekleneceği anlamına gelir. değiştirilen değerler sütununun yanında ikinci, üçüncü, dördüncü veya beşinci sütun.

3. Değiştirilen sütundaki bir değeri sildiğinizde, tarih ve saat de kaldırılacaktır.


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (108)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu bir sayfada birden çok kez yapmak için kodu nasıl yazarsınız Örn. B sütunundaki metin, C'deki tarih ve D'deki metin, E'deki tarih?
Bu yorum sitedeki moderatör tarafından en aza indirildi
[quote]Bunu bir sayfada birden çok kez yapmak için kodu nasıl yazarsınız Ör. B sütunundaki metin, C'deki tarih ve D'deki metin, E'deki tarih?Hilary tarafından[/quote] Bunun eski olduğunu biliyorum, ancak uzun, ancak kolay yol, değişken bildirimlerini kopyalamak ve yeni değişkenler (ör. WorkRng1 ve Rng1) oluşturmaktır. Ayrıca "if" ifadesini kopyalamanız ve değişkenleri yeni değişken adlarıyla değiştirmeniz gerekir.
Bu yorum sitedeki moderatör tarafından en aza indirildi
[quote]Bunu bir sayfada birden çok kez yapmak için kodu nasıl yazarsınız Ör. B sütunundaki metin, C'deki tarih ve D'deki metin, E'deki tarih?Hilary tarafından[/quote] Kod şudur: Private Sub Worksheet_Change(ByVal Target As Range) 'Update 20140722 Dim WorkRng As Range Dim Rng As Range Dim xOffsetColumn As Integer 'Aralığı, güncellemekte olduğunuz sütunu seçmek için değiştirin, yani ("A: A") veya ("B:B") Set WorkRng = Intersect(Application.ActiveSheet.Range("E:E"), Target) xOffsetColumn = 1 'İkinci zaman damgası için' WorkRng1 gibi yeni değişken adları oluşturun Rng1, vb. Dim WorkRng1 As Range Dim Rng1 As Range Dim xOffsetColumn1 As Integer Set WorkRng1 = Intersect(Application.ActiveSheet.Range("G:G"), Target) xOffsetColumn1 = 1 'İlk kez damgası için WorkRng Is Nothing Sonra Application.EnableEvents = WorkRng'deki Her Rng İçin False Değilse VBA.IsEmpty(Rng.Value) Sonra Rng.Offset(0, xOffsetColumn).Value = Now Rng.Offset(0, xOffsetColumn).NumberFormat = "mm/dd/ yyyy" Else Rng.Offset(0, xOffsetColumn).ClearContents End If Next If Next Application.EnableEvents = True End If 'İkinci zaman damgası için If Not Not WorkRng1 Hiçbir Şey Değilse Application.EnableEve nts = WorkRng1'deki Her Rng1 İçin Yanlış VBA.IsEmpty(Rng1.Value) Sonra Rng1.Offset(0, xOffsetColumn1).Value = Now Rng1.Offset(0, xOffsetColumn1).NumberFormat = "aa/gg/yyyy" Diğer Rng1.Offset(0, xOffsetColumn1).ClearContents End If Next If Next Application.EnableEvents = True End If End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu bir dizi sütun için yapmak istersem ne olur?
Bu yorum sitedeki moderatör tarafından en aza indirildi
(B:B) aralığını şu şekilde değiştirin: (10:20) 10 ila 20 arasındaki sütunlar için (D5:D40) D satırındaki 5 ila 40 arasındaki sütunlar için Umarım yardımcı olur.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Üzgünüm, sütunları satırlarla değiştiriyorum ama yine de çalışıyor. (D:P) D sütunundan P'ye (D5:D5) 5. satırda D sütunundan P'ye
Bu yorum sitedeki moderatör tarafından en aza indirildi
kaydettiğimde çalışıyor ama yeniden açtığımda çalışmıyor
Bu yorum sitedeki moderatör tarafından en aza indirildi
[quote]kaydettiğimde çalışıyor ama yeniden açtığımda çalışmıyorAarif tarafından[/quote] Aarif ile aynı sorun... Yarım saat önce bir tedavi işe yaradı ve şimdi çalışmıyor... Ayrıca, tarih VE saati değil sadece saati istedim, bu yüzden ".NumberFormat" ı düzenledim sadece ss:dd:ss, kaydedildi, test edildi... farklı değil... hala tarih ve saati koyarak...? VB'yi tekrar açtım ve bazı sınırlandırılmış metinler yazdım, tekrar kaydedildi, yine de iyi değil, sonra üçüncü kez yaptım ve format söylendiği gibi yaptı ve aniden tam zamanım oldu. ÇOK garip Uzun zamandır Excell'in perili olduğunu düşünüyordum, ARA işlevini ilk kullandığımdan beri, bir hücrede kendi gözlerimle görebildiğim bir değer arıyordum, ancak Excel bunun var olmadığı konusunda ısrar etti!? Yardımcı olabilecek herhangi bir Excel gurusu veya şeytan kovucu var mı? neden VB'mi görmezden geliyor ve yaptığı gibi zaman damgası DEĞİL ...? teşekkür ederim :ağla:
Bu yorum sitedeki moderatör tarafından en aza indirildi
[quote]Bunu bir sayfada birden çok kez yapmak için kodu nasıl yazarsınız Ör. B sütunundaki metin, C'deki tarih ve D'deki metin, E'deki tarih?Hilary tarafından[/quote] alıntının cevabı nedir
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunun çalışmasını istiyorsam ancak aktif bir sayfada değilsem, yani arka planda çalıştırın ve B sütununa her giriş olduğunda güncelleyin?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ya zaman damgası sütununu etkileyen sütun, diğer birden çok sütunun toplamıysa? Örneğin... H Sütunu =Sum(E+F+G)'dir ve Sütun H her değiştirildiğinde veya özünde Sütun E, F veya G değiştirildiğinde Sütun I'de bir zaman damgası yapılmasını istiyorum. . Lütfen yardım edebilir misin??
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yardıma ihtiyacım var, lütfen! Üç hücreden biri her değiştiğinde bir zaman damgası yaptırmaya çalışıyorum. İdeal olarak, bu hücrelerin toplamı değiştiğinde bunu yapmak isterim. Örneğin. E, F, G hücreleri değişecek ve H Hücresi bu üç hücrenin TOPLAMI olacaktır. H hücresi değiştirildiğinde, Hücre I'in zaman damgalı olmasını istiyorum. Mümkün mü?? Çok teşekkür ederim
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yukarıdaki kodu çalıştırmaya çalışıyorum; ancak, değişikliği kaydetmek istediğim hücre bir onay kutusuna bağlı ve bu nedenle "DOĞRU" veya "YANLIŞ". Bazı nedenlerden dolayı, hücre değiştiğinde kod çalışmayacaktır. Ancak, manuel olarak "evet" demeyi eklersem, kod iyi çalışır. Bu sorun için bildiğiniz bir geçici çözüm var mı? Teşekkür ederim!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu tarihsel veriler için yapmak mümkün mü? Dün veya bir ay önce bir hücrede değişiklik yaptıysam, bu tarihleri ​​almak için bu kodun bir formunu kullanabilir miyim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Belirli bir değişikliğe dayalı olarak zaman damgası almanın bir yolu var mı? Örneğin, boş, 'Tamam' ve 'Harekete Geç' dahil olmak üzere bir açılır seçenekler sütununa sahip bir elektronik tablom var. Görev tamamlandığında, açılır menü 'Tamam'ı seçmek için manuel olarak kullanılır. Tarih damgasının 'Tamam' seçildiğinde bağlanmasını istiyorum, ancak 'Harekete Geç' seçildiğinde değil. Açılır menüdeki 'Hareket Et' seçeneği, bir görevin vadesi geçtiğinde kullanılır, ancak ben gerçekten sadece bir öğenin ne zaman tamamlandığını izlemeye çalışıyorum. Bunu yukarıdaki kodla başarmanın bir yolu var mı? Teşekkürler!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu çözebildiniz mi?
Bu yorum sitedeki moderatör tarafından en aza indirildi
çok güzel bir soru çözebildin mi, paylaşabilir misin?
Teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aralığı ("A:Q") olarak değiştirebilirim, ancak herhangi bir AQ hücresindeki veriler değiştirilirse/kaldırılırsa "S"ye girmek için tarih ve saate ihtiyacım var. VBA'ya meydan okuyorum. Herhangi bir yardım büyük beğeni topluyor!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Üzgünüm, az önce bir soru gönderdim ve bunun cevabına ihtiyacım var...Bu yorumu kaçırmış olmalıyım...umarım birileri yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yalnızca bitişik hücre tarihi değişecek şekilde nasıl değiştiririm?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Değiştirilen hücrenin yanındaki hücre yerine belirli bir hücreye kayıt yapmak için zaman damgasını nasıl alabilirim. Bu hücrelerden herhangi birinde bir değişiklik meydana geldiğinde bir dizi hücrenin zaman damgasını vurmaya çalışıyorum, zaman damgasının belirli bir hücreye kaydedilmesini istiyorum... bu konuda yardımcı olabilecek var mı? Teşekkür ederim!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba , WB denetlenebilirliği için harika olduğu için bunun için teşekkür ederiz. Bir yorum eklendiğinde veya değiştirildiğinde, tarih/saatin WB'de bir yere kaydedilmesini sağlamak için bunu değiştirmenin bir yolu var mı? Bunun genel bir soru olduğunu biliyorum, ancak mümkün olup olmadığından emin değilim (maalesef MS 2010 için, .comment özelliği ne zaman girildiğini belirlemek için bir tarih özelliğine sahip değil. Mike
Bu yorum sitedeki moderatör tarafından en aza indirildi
A:A sütununu okumak ve sadece 14 haneli bir sayı girildiğinde B:B'de zaman damgası vermek için nasıl yapılandırabilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, biraz VBA kodlama yardımına ihtiyacım var. Kişilere atanacak ve vaka statüsüne sahip vakalarla bir elektronik tablo oluşturuyorum. Atanan kişi Sütun H'de olacak ve Sütun H'deki hücre bir adla güncellendiğinde veya değiştirildiğinde Sütun I'de bir tarih damgasına ihtiyacım var. Benzer şekilde, Sütun J'de durum durumuna sahip olacağım ve bir durum girildiğinde veya değiştirildiğinde Sütun K'de bir tarih damgasına ihtiyacım olacak. ayrıca vekil olmayan bir isim veya durum olduğunda, Sütun I ve K'deki tarih damgasının boş olmasına ihtiyacım var. Herhangi bir yardım takdir edilecektir. teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kodu başka bir yerde buldum ve kullanımım için değiştirdim. Doğru yapılırsa, bir hücreye işlev girme veya dosya her açıldığında tarihleri ​​o günün tarihine değiştirme konusunda endişelenmenize gerek yoktur. - Excel'i açın - "Alt+F11"e basın - Değişikliği uygulamak istediğiniz çalışma sayfasına çift tıklayın (solda listelenmiştir) - aşağıdaki kodu kopyalayın/yapıştırın - Aralık (_:_) girişini karşılık gelecek şekilde ayarlayın güncelleyeceğiniz sütuna - Ofset (0,_) girişini tarihin görüntülenmesini istediğiniz sütuna karşılık gelecek şekilde ayarlayın (aşağıdaki sürümde D sütununda güncellemeler yapıyorum ve tarihin F sütununda görüntülenmesini istiyorum, bu nedenle, D sütunundan 2 sütun için "2" giriş girişi) - kaydet düğmesine basın - çalışma kitabınızda aynı koda ihtiyaç duyan başka çalışma sayfaları varsa yukarıdaki adımları tekrarlayın - görüntüleyen sütunun sayı biçimini değiştirmeniz gerekebilir. güncellenmiş bir giriş yaptıktan sonra "####" görüntüleniyorsa sütunun genişliğini artırın ve aşağıdaki Kodu Kopyala/Yapıştırın: ____________________________________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range(" D:D")) Is Nothing Then Exit Sub Target.Offset(0, 2) = Date End Sub ___ _________________________________________________________ İyi şanlar...
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu kod göründüğünde tarihi gösterecek, sadece hücredeki içerik değiştirildiğinde, sadece tıklandığında ve hiçbir şey değişmediğinde, tarih gösterilmiyor veya daha önce girilen tarih kaldığında tarihi göstermek mümkün mü?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Makroda bir vloocup formülü kaydettiğimde, bu tarihi nasıl yapabilirim otomatik olarak 1 gün yukarı değişti 21/07/2017 gibi sonra ertesi gün 22/07/2017 olarak değiştirildi Herhangi bir vba kodu varsa otomatik olarak paylaşın lütfen.
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu satırı değiştir
Rng.Offset(0, xOffsetColumn).Value = Şimdi

için
Rng.Offset(0, xOffsetColumn).Value = Şimdi+1
Bu yorum sitedeki moderatör tarafından en aza indirildi
Kod için çok teşekkürler! Tam olarak aradığım şey!!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yardımın için teşekkürler :-)
Buraya henüz hiç yorum yapılmamış
Daha Çok

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır