Rentetan hingga Tarikh VBA - Tukar Nilai Rentetan ke Tarikh di Excel VBA

Rentetan VBA Excel hingga kini

Di Vba ada metode di mana kita dapat mengubah rentetan yang diberikan menjadi tanggal, dan metode ini dikenal sebagai fungsi CDATE di vba, ini adalah fungsi inbuilt di VBA dan bahagian yang diperlukan untuk fungsi ini adalah mengubah rentetan ke nombor dan kemudian kita menukar nombor yang diberi menjadi tarikh. Format hasil hanya bergantung pada format tarikh sistem sahaja.

Salah satu masalah biasa yang kita semua hadapi adalah "Tarikh & Masa" dan sering disimpan sebagai nilai teks dan tidak disedari pada mulanya. Tetapi apabila mereka diminta untuk menggunakan waktu itu, kita akan mengetahui bahawa nilai-nilai tersebut disimpan sebagai teks dan sama sekali tidak tahu bagaimana menghadapinya. "Tarikh & Masa" adalah dua perkara gabungan dalam satu elemen, tetapi apabila nilai-nilai tersebut disimpan sebagai nilai teks, sangat menyusahkan.

Bagaimana Menukar Nilai Rentetan kepada Tarikh?

Contoh # 1

Setelah pemboleh ubah VBA diisytiharkan dan ditetapkan sebagai String, apa sahaja yang diberikan kepada pemboleh ubah tersebut akan dianggap sebagai rentetan sahaja. Contohnya, lihat kod di bawah.

Kod:

Sub String_To_Date () Dim k As String k = "10-21" MsgBox k Akhir Sub

Dalam kod di atas, pemboleh ubah "k" didefinisikan sebagai jenis data "String", dan untuk pemboleh ubah ini, kami telah menetapkan nilainya sebagai "10-21".

Ok, mari kita jalankan kodnya dan lihat apa yang kita dapat di kotak mesej di VBA.

Kami mendapat nilai hanya 10-21, tetapi biasanya, nilai ini adalah tarikh, bukan nilai rentetan. Jadi, walaupun jenis data yang ditetapkan adalah "String", kita masih boleh menukar hingga kini dengan menggunakan fungsi penukaran jenis data CDATE VBA.

Kod:

Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) Akhir Sub

Di atas, sebelum kita menunjukkan hasil pemboleh ubah "k" di kotak pesan, kita telah menetapkan fungsi CDATE. Satu penyesuaian kecil dibuat, mari kita lihat seberapa besar kesannya.

Sekarang kita akan melihat hasilnya sebagai "Tarikh" tidak lagi sebagai nilai "String".

Contoh # 2

Sekarang, lihat kod di bawah untuk contoh.

Kod:

Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub

Pada ketika ini kod di atas akan menunjukkan hasilnya sebagai "43599," seperti yang kami tetapkan di atas.

Tetapi setelah kita menggunakan fungsi CDATE, ia akan berubah menjadi nilai tarikh.

Kod:

Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub

Hasilnya setelah menerapkan fungsi CDATE adalah seperti berikut.

Oleh kerana excel menyimpan tarikh sebagai nombor siri, nombor siri kami yang ditetapkan 43599 adalah sama dengan tarikh 05/14/2019 ketika format tarikh digunakan.

Kami juga dapat menerapkan format pada tanggal sebagai "DD-MMM-YYYY" untuk membaca tarikh dengan tepat.

Kod:

Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) Format MsgBox (DateValue, "DD-MMM-YYYY") End Sub

Di atas, saya telah menyatakan satu pemboleh ubah tambahan untuk menyimpan hasilnya. Untuk pemboleh ubah ini, saya telah menggunakan fungsi penukaran CDATE.

Seterusnya, saya telah menggunakan fungsi FORMAT untuk menerapkan format format "DD-MMM-YYYY", dan hasilnya akan seperti yang ditunjukkan di bawah ini.

Dengan ini, kita dapat membaca bahagian hari dan bulan dengan jelas. Itu juga bergantung pada format tarikh sistem anda di excel. Oleh kerana format tarikh sistem saya adalah "MM-DD-YYYY", itu menunjukkan seperti itu, tetapi itu seharusnya tidak menjadi halangan untuk memformat.

Contoh # 3

Sekarang kita akan melihat bagaimana tarikh diformat sebagai nilai teks dalam sel lembaran kerja. Di bawah ini adalah gambar tarikh yang disimpan sebagai teks dalam lembaran kerja.

Di lajur A dari A2 hingga A12, kita memiliki nilai pencarian tanggal, tetapi ketika kita melihat tab format, itu menunjukkan format "Teks". Sekarang kita perlu menukar nilai-nilai ini dari teks ke tarikh.

Di bawah ini adalah kod yang telah saya tulis untuk menukar nilai tarikh berformat teks menjadi tarikh sebenar.

Kod:

Sub String_To_Date2 () Dim k As Long 'Data terdapat di lebih dari satu sel, jadi perlu melingkari setiap sel' Open For Loop For k = 2 To 12 'Data bermula dari baris ke-2 dan berakhir pada baris ke-12, jadi 2 hingga 12 Sel (k, 2). Nilai = CDate (Sel (k, 1). Nilai) K seterusnya Sub Akhir

Sekiranya anda menjalankan kod, ia akan memberikan hasil di bawah.

Perkara yang Perlu Diingat

  • CDATE adalah fungsi penukaran jenis data tetapi dapat digunakan untuk menukar tarikh rentetan VBA ke nilai tarikh sebenar.
  • Hasil format fungsi CDATE hanya bergantung pada format tarikh sistem sahaja.
  • Tarikh disimpan sebagai nombor siri di excel, jadi format diperlukan untuk menunjukkannya sebagai tarikh.

Artikel menarik...