Rentetan hingga kini VBA

Rentetan VBA Excel hingga kini

Di Vba ada metode di mana kita dapat mengubah rentetan tertentu menjadi tanggal, dan metode ini dikenal sebagai fungsi CDATE di vba, ini adalah fungsi inbuilt di VBA dan bahagian-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 masa 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, sukar untuk digunakan.

Bagaimana Menukar Nilai Rentetan kepada Tarikh?

Anda boleh memuat turun Templat VBA String to Date Excel ini di sini - Templat String to Date Excel VBA

Contoh # 1

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

Kod:

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

Dalam pemboleh ubah kod di atas "k" didefinisikan sebagai "String" jenis data dan untuk pemboleh ubah ini kami telah menetapkan nilai 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. Oleh itu, walaupun jenis data yang ditetapkan adalah "String", kita masih boleh menukar sehingga 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 mesej 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 "Rentetan".

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 "DD-MMM-YYYY" dan hasilnya akan seperti yang ditunjukkan di bawah ini.

Dengan ini, kita dapat membaca bahagian hari dan bulan dengan jelas. Ini juga bergantung pada format tarikh sistem anda di excel, kerana format tarikh sistem saya adalah "MM-DD-YYYY", ia kelihatan seperti itu tetapi itu tidak seharusnya menjadi penghalang 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 mempunyai nilai mencari tanggal tetapi ketika kita melihat tab format itu menunjukkan format "Teks". Sekarang kita perlu menukar nilai-nilai ini dari teks ke tarikh.

Berikut 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) Seterusnya k Akhir Sub 

Sekiranya anda menjalankan kod itu akan memberi kita 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.