Bagaimana saya bisa mengubah format angka sel dalam tabel yang diimpor database?

2

Saya memiliki lembaran yang terlihat seperti ini -

    A  |     B      | C
   ----------------------
    2  |  Okay      |  0
    3  |  Not okay  | 0

Sel C3 memiliki pointer kesalahan hijau dan mengatakan "Nomor dalam sel ini diformat sebagai teks atau didahului dengan tanda kutip", dan tentu saja dibenarkan.

Ketika saya menampilkan format untuk kedua sel C2 dan C3, mereka berdua tampil sebagai "Jenderal".

Ketika saya menggunakan VBA untuk memeriksa "NumberFormat", keduanya muncul sebagai "Umum".

Saya menggunakan Office 2010, omong-omong.

Saya ingin merapikan ini (ini terjadi pada lusinan sel di sejumlah lembar kerja) dengan mengubah format dari teks menjadi umum menggunakan kode VBA, tetapi bagaimana saya bisa melakukan ini jika yakin sel-sel tersebut sudah diformat sebagai Umum ?

Garry Bristow
sumber
Apakah data ini sudah Anda masukkan, atau berasal dari tempat lain?
CLockeWork
Itu datang dari tempat lain; add-in Excel telah menjalankan kueri untuk mengambil data dari database. Ini sangat tidak konsisten, sebagian besar sel tidak memiliki masalah ini.
Garry Bristow

Jawaban:

2

Ini bisa terjadi ketika Excel berpikir nomor tersebut disimpan sebagai teks (bahkan jika dikatakan tidak, bahkan jika Anda mengubah format menjadi angka) karena itu disandikan dengan buruk di ujung lainnya.

Perbaikan yang sangat sederhana untuk nomor yang disimpan sebagai teks adalah dengan menambahkan kolom tambahan dengan rumus yang mengubah angka menjadi angka.

=$C2*1

Dan seret ke bawah, lalu lihat itu. Jika Anda bekerja dengan tabel terhubung langsung, memiliki kolom ini di akhir tabel akan berarti rentang rumus akan diperluas dengan rentang data.


Tentu saja dengan VBA Anda bisa menjalankan loop yang melewati data yang mengganti setiap nilai dalam kolom dengan hasil rumus ini.

CLockeWork
sumber
Ide bagus, VBA loop berhasil. Satu-satunya kekhawatiran sekarang adalah saya mengubah sel yang tidak perlu saya ubah karena mereka tidak punya masalah. Saya tidak bisa bertanya apakah sel diformat sebagai teks karena Excel tidak berpikir demikian. Sudahlah
Garry Bristow
2

Berikut cuplikan VBA yang akan melakukan trik.

Sub FixTextFormattedNumbers()
Dim s As Worksheet, r As Range
'Set target sheet and range
Set s = Sheets("Sheet1")
Set r = s.Range("A1:A10")

For Each c In r
    On Error Resume Next
    c.Value = CDbl(c.Value)
Next c
End Sub

Penanganan kesalahan hanya untuk berjaga-jaga jika Anda memiliki teks aktual dalam rentang yang ditentukan.

Excellll
sumber
0

Ini sering terjadi ketika menyalin-menempel atau mengimpor data. Jika itu adalah seluruh kolom, cara terbaik untuk memperbaikinya adalah pada dasarnya mengimpor kembali kolom dengan kontrol yang lebih besar atas asumsi Excel mengenai data seperti apa itu.

Cara untuk melakukan ini adalah:

  1. Sorot sebuah kolom dengan masalah ini

  2. Memilih Data - & gt; Text To Columns

  3. Klik Finish (Default berfungsi untuk kasus ini - mereka Dibatasi- & gt; Tab - & gt; Umum (format)). Jika Anda harus melakukan kebalikannya (mengimpor kembali angka tetapi memaksanya diperlakukan sebagai teks), Anda akan mengubah opsi ketiga menjadi Teks

Madball73
sumber
Itu bukan seluruh kolom. Sebuah kolom biasanya memiliki 900 baris dan mungkin 70 atau 80 dari mereka memiliki masalah ini. Saya tidak ingin jadi ini secara manual, menganggap ini bisa ditangani oleh kode VBA, tetapi sepertinya tidak.
Garry Bristow