Daftar Isi
Pada artikel ini, kita akan membahas beberapa metode untuk mengonversi string menjadi angka di Excel VBA. Kita akan melihat cara menggunakan fungsi bawaan dan membuat fungsi kustom menggunakannya untuk mengonversi string menjadi angka dengan contoh kode VBA.
Unduh Buku Kerja Praktik
Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.
Ubah String menjadi Angka.xlsm3 Cara Mengonversi String ke Angka di Excel VBA
1. Konversi String ke Angka Menggunakan Fungsi Konversi Tipe
Excel menyediakan beberapa built-in fungsi konversi tipe Kita dapat menggunakannya dalam kode VBA kita untuk dengan mudah mengkonversi dari tipe data string ke tipe data yang berbeda.
1.1 String ke Integer
Untuk mengonversi string untuk bilangan bulat , kita bisa menggunakan Fungsi CInt dalam kode kami. Fungsi CInt hanya membutuhkan satu argumen dan itu harus menjadi nilai numerik Mari kita coba kode berikut ini di Visual Code Editor.
Sub StringToNumber() MsgBox CInt(12.3) End Sub
Tekan F5 untuk lari yang kode Keluaran ditampilkan dalam MsgBox .
Fungsi CInt dikonversi yang string numerik nilai ("12.3" ) ke sebuah bilangan bulat 12.
Untuk memahami lebih lanjut tentang Fungsi CInt , jalankan kode berikut ini di editor kode dan amati yang hasil .
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub
The keluaran ada di sini sebagai berikut tangkapan layar .
Penjelasan Kode
Dalam kode ini, kami menggunakan Untuk...Perulangan berikutnya untuk menerapkan Fungsi CInt pada untaian sel B3:B7. The keluaran dicetak dalam sel C3:C7. Kami menggunakan Fungsi sel untuk menentukan nilai input dan tempat mencetak nilai output.
Hasil
Fungsi CInt dikonversi 25,5 ke bilangan bulat berikutnya 26 Di sisi lain, itu dikonversi 10.3 untuk 10, bukan 11 Ketika nilai numerik desimal kurang dari 0,5, fungsi ini membulatkan ke bawah ke angka yang sama. Tetapi fungsi desimal nilai string numerik berubah menjadi bilangan bulat berikutnya nomor jika itu adalah sama dengan atau lebih besar dari 0,5.
Catatan
Nilai integer memiliki kisaran antara -32,768 untuk 32,767 Jika kita menaruh nilai numerik yaitu di luar kisaran ini , Excel akan menampilkan kesalahan .
1.2 String ke Long
The Fungsi CLng mengonversi nilai string numerik ke tipe data panjang Cara kerjanya mirip dengan fungsi CInt. Perbedaan utamanya terletak pada fungsi rentang yang berada di antara -2,147,483,648 dan 2,147,483,647.
Kode untuk menjalankannya ada di sini di bawah ini: Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub
Di sini, sel-sel B3:B9 mengandung beberapa nilai string numerik dan dikonversi l angka ong berada dalam sel C3:C9. The Fungsi CLng dikonversi -32800 dan 32800 berhasil untuk angka panjang yang mana Fungsi CInt tidak bisa. Tapi itu juga akan mendapatkan kesalahan jika masukan nilai numerik adalah di luar jangkauan.
1.3 String ke Desimal
Menggunakan Fungsi CDec kita bisa mengkonversi a nilai string numerik ke a tipe data desimal. Lari kode berikut untuk mengkonversi yang nilai numerik dalam sel B3:B7 ke tipe data desimal.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub
1.4 String ke Tunggal
Dalam contoh ini, kita akan mengubah string input menjadi tipe data tunggal (titik mengambang presisi tunggal). Untuk ini, kita perlu menggunakan Fungsi CSng .
Rentang tipe data tunggal- (i) -3.402823E38 untuk -1.401298E-45 untuk negatif angka.
(ii) 1.401298E-45 untuk 3.402823E38 untuk positif angka.
Jalankan kode berikut ini di editor visual basic.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
Dalam keluaran, sel-sel B3:B9 mengandung beberapa nilai string numerik, dan angka tipe data tunggal yang dikonversi berada dalam sel C3:C9. Tetapi juga akan mendapatkan kesalahan jika masukan nilai numerik adalah di luar jangkauan.
1.5 String ke Ganda
Dalam contoh ini, kita akan mengubah string input menjadi tipe data ganda (titik mengambang presisi ganda). Untuk ini, kita perlu menggunakan Fungsi CDbl .
Rentang rentang tipe data ganda- (i) -1.79769313486231E308 untuk -4.94065645841247E-324 untuk negatif angka.
(ii) 4.94065645841247E-324 untuk 1.79769313486232E308 untuk positif angka.
Jalankan kode berikut ini di editor visual basic.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
Dalam keluaran, sel-sel B3:B9 mengandung beberapa nilai string numerik dan angka bertipe data ganda yang dikonversi berada dalam sel C3:C9. Tetapi juga akan mendapatkan kesalahan jika masukan nilai numerik adalah di luar jangkauan.
1.6 String ke Mata Uang
The tipe data mata uang berguna ketika kalkulasi terkait dengan uang Selain itu, jika kita ingin lebih akurat dalam tetap - titik perhitungan penggunaan tipe data mata uang adalah pilihan yang baik. Kita perlu menggunakan Fungsi CCur untuk mengubah string menjadi sebuah tipe data mata uang Tipe data rentang dari -922,337,203,685,477.5808 untuk 922,337,203,685,477.5808.
Kode untuk mengkonversi nilai string numerik sel B3:B7 untuk tipe data mata uang dalam sel C3:C7 ada di sini di bawah ini.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub
1.7 String ke Byte
The Fungsi CByte mengonversi nilai string numerik ke tipe data byte yang berkisar dari 0 hingga 255.
Kode adalah sebagai berikut :
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub
Dalam keluaran, sel-sel B3:B9 mengandung beberapa nilai string numerik, dan angka tipe data byte yang dikonversi berada dalam sel C3:C9. Tetapi juga akan mendapatkan kesalahan jika masukan nilai numerik adalah di luar jangkauan.
Baca selengkapnya: Cara Mengonversi String ke Panjang Menggunakan VBA di Excel
Bacaan Serupa
- Ubah String menjadi Ganda di Excel VBA (5 Metode)
- Cara Mengonversi Teks ke Angka dengan Excel VBA (3 Contoh dengan Makro)
- Perbaiki Kesalahan Konversi ke Angka di Excel (6 Metode)
- Cara Mengubah Notasi Ilmiah menjadi Angka di Excel (7 Metode)
2. Penggunaan Fungsi VBA Kustom untuk Memeriksa dan Mengonversi String ke Angka di Excel
Dalam ilustrasi ini, kita akan membuat sebuah fungsi khusus untuk mengubah string menjadi angka. Kita kemudian dapat gunakan ini fungsi khusus di lembar kerja seperti fungsi bawaan Dalam contoh ini, kita akan menggunakan Fungsi CInt untuk mengkonversi string ke bilangan bulat saat membuat fungsi khusus. Kita juga bisa menggunakan semua fungsi-fungsi lain dijelaskan dalam metode 1 untuk mengkonversi string untuk tipe data yang berbeda Sekarang, ikuti langkah-langkah di bawah ini untuk melakukannya.
Langkah-langkah:
- Di sini, di dalam sel B3:B7, kita memiliki beberapa nilai string numerik.
- Sekarang, di editor visual basic, salinan dan tempelkan kode berikut dan kemudian tekan Ctrl + S untuk Simpan
Fungsi StringToNumber(inputStr) Dim dikonversiNum As Varian If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then dikonversiNum = "-" Else dikonversiNum = CInt(inputStr) End If Else dikonversiNum = "-" End If StringToNumber = dikonversiNum End Function
- Di dalam sel C3 , mulai mengetik yang nama fungsi ( StringToNumber ). Excel akan secara otomatis menyarankan yang fungsi untuk digunakan. Tekan yang Tombol Tab untuk memasuki fungsi.
- Letakkan referensi sel B3 sebagai satu-satunya argumen.
- Sekarang, tekan Masuk setelah menutup tanda kurung.
- Temukan Isi Gagang di sudut kanan bawah dari sel C3 untuk berlaku fungsi untuk sel C4:C7.
- Keluaran akhir adalah angka-angka integer yang didambakan dari nilai-nilai string.
3. Kode VBA untuk Mengonversi Rentang Sel yang Dipilih ke Angka di Excel
Dalam ilustrasi ini, kita akan mengonversi sebuah rentang dari sel yang dipilih yang berisi nilai string ke angka integer. Jika ada sel yang berisi nilai non-numerik di dalamnya, keluarannya akan berupa garis putus-putus (-) sebagai gantinya . Ikuti langkah-langkah :
- Pilih sel B3:B6 memiliki string numerik nilai dan B7 yang berisi non-numerik
- Dalam Editor Visual Basic salinan dan tempelkan berikut ini kode .
Sub StringToNumber() Dim convertedNum As Variant For Each cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertedNum = "-" Else convertedNum = CInt(cell) End If Else convertedNum = "-" End If With cell .Value = convertedNum.HorizontalAlignment = xlCenter End With Sel berikutnya End Sub
- Sekarang, tekan F5 untuk lari yang keluaran seperti yang ditunjukkan dalam gambar berikut ini tangkapan layar .
Catatan
- Kami menggunakan fungsi isNumeric di 2 dan 3 metode dalam kode VBA kita yang memeriksa apakah suatu ekspresi dapat dikonversi menjadi angka.
- Dalam metode 1 kami menggunakan fungsi built-in (CInt, CDbl, CSng.....) untuk mengkonversi nilai string numerik untuk angka Tetapi jika ada nilai non-numerik , itu akan menunjukkan kesalahan ketidakcocokan .
Kesimpulan
Sekarang, kita tahu cara mengonversi nilai string menjadi angka di Excel. Semoga ini akan mendorong Anda untuk menggunakan fungsi ini dengan lebih percaya diri. Ada pertanyaan atau saran jangan lupa untuk memasukkannya ke dalam kotak komentar di bawah ini.