Ben aşağıdaki biçimde bir Excel sayfasında veriler: Bir dizi DeliveryDate değerlerini kaydettiktenvba dize Tarihi dönüştürme
ItemCode DeliveryDate 5456987 24.01.2009 5456988 5456989 12.24.2009 5456990 12/24/2009
. Tarihin temelleri konusunda karar vermem ve sonucu yeni bir sayfa halinde basmam gerekiyor.
- ayrıştırma: VBA bir işlev hangi can var mı
Run-time error '13':
Type mismatch
: Ben diziye değerleri dönüştürmek zorunda:
Dim current as Date, highest as Date, result() as Date For Each itemDate in DeliveryDateArray current = CDate(itemDate) if current > highest then highest = current end if ' some more operations an put dates into result array Next itemDate 'After activating final sheet... Range("A1").Resize(UBound(result), 1).Value = Application.Transpose(result)
Maalesef CDate() fonksiyonu hata atıyor herhangi bir tarih biçimiyle dize ve birlikte çalışmak için bir tarih nesnesi döndürün.
- Boş bir tarih nesnesini, dize boşsa veya hatalıysa (döngüde karşılaştırmak için) döndürün.
Düzenleme:
basitçe, o boş veri satırında hata atma olabilir gibi myDate = CDate("24.01.2009")
dEĞİLDİR olduğunu http://www.example-code.com /vb/stringtodate.asp] doğru yapıyordun ... Hatayı nereye atar? Hangi satırda - ilk veya ikinci satır (boş dize)? Dize formatını değiştirmeyi denediniz mi? Tarih dizelerini burada nasıl ayrıştırdığınıza ilişkin biçimi değiştirmek isteyebilirsiniz. "24.01.2009" kabul edilmeyebilir, ancak "12/24/2009" olabilir - sadece 12/24/2009 'u dönüştürmeye çalışın ve çalışıp çalışmadığını görün. Çalışıyorsa, 24.01.2009 biçimi kabul edilemez olabilir. –
Çalışıyor olup olmadığını görmek için 12/24/2009 dönüştürmeyi deneyin. Eğer işe yararsa, o zaman dd.MM.yyyy formatı CDate için uygun olmayabilir. Biçimlendirilmesinin nasıl yapılacağını belirtmeniz için bir yol olabilir, böylece tam olarak istediğiniz şekilde ayrıştırılabilir. Dd.MM.yyyy biçimi, bu soruna neden olan şey ise, önce biçimi "." Gibi değiştirmek bir "/" ile ve tekrar dönüştürmeyi deneyin. Ya da MM/gg/yyyy olacak şekilde biçimlendirin ve sonra dönüştürün. Sanırım "12/24/2009" un hata yapıp yapmayacağını bilmek istiyorum. İlk önce kontrol et ve bana haber ver. –
@AnnB., Ilk sorum şu; * Herhangi bir tarih formatıyla dizeyi ayrıştırabilen ve çalışmak için bir tarih nesnesi döndüren bir VBA işlevi var mı? –