Cách chuyển đổi chuỗi thành số trong Excel VBA (3 phương pháp)

  • Chia Sẻ Cái Này
Hugh West

Trong bài viết này, chúng ta sẽ thảo luận về một số phương pháp để chuyển đổi chuỗi thành số trong Excel VBA. Chúng ta sẽ xem cách sử dụng các hàm tích hợp sẵn và tạo một hàm tùy chỉnh bằng cách sử dụng chúng để chuyển đổi chuỗi thành số bằng các ví dụ về mã VBA.

Tải xuống Sách bài tập thực hành

Tải sách bài tập thực hành này xuống để thực hành khi bạn đang đọc bài viết này.

Chuyển chuỗi thành số.xlsm

3 cách chuyển chuỗi thành số trong Excel VBA

1. Chuyển đổi chuỗi thành số bằng các hàm chuyển đổi loại

Excel cung cấp một số hàm chuyển đổi loại tích hợp sẵn. Chúng ta có thể sử dụng chúng trong mã VBA của mình để dễ dàng chuyển đổi từ kiểu dữ liệu chuỗi sang các kiểu dữ liệu khác.

1.1 Chuỗi thành số nguyên

Để chuyển đổi chuỗi thành số nguyên , chúng ta có thể sử dụng hàm CInt trong mã của mình. Hàm CInt chỉ nhận một đối số và đó phải là một giá trị số . Hãy thử đoạn mã sau trong Trình chỉnh sửa mã hình ảnh.

7616

Nhấn F5 để chạy . Đầu ra được hiển thị trong MsgBox .

Hàm CInt đã chuyển đổi giá trị chuỗi số (“12.3” ) thành số nguyên 12.

Để hiểu thêm về hàm CInt , hãy chạy lệnh sau mã trong trình chỉnh sửa mã và quan sát kết quả .

2393

Đầu ra ở đây trongsau ảnh chụp màn hình .

Giải thích mã

Trong mã này, chúng tôi đã sử dụng Dành cho… Vòng lặp tiếp theo để áp dụng Hàm CInt trên các chuỗi ô B3:B7. Các đầu ra được in trong các ô C3:C7. Chúng tôi đã sử dụng Hàm Cells để chỉ định các giá trị đầu vào và nơi in các giá trị đầu ra.

Kết quả

Hàm CInt đã chuyển đổi 25,5 thành số nguyên tiếp theo 26 . Mặt khác, nó đã chuyển đổi 10.3 thành 10 chứ không phải 11 . Khi một giá trị số thập phân nhỏ hơn .5, hàm sẽ làm tròn xuống cùng một số. Nhưng giá trị chuỗi số thập phân biến thành số số nguyên tiếp theo nếu nó bằng hoặc lớn hơn .5.

Lưu ý

Giá trị số nguyên nằm trong khoảng từ -32,768 đến 32,767 . Nếu chúng ta đặt một giá trị số nằm ngoài phạm vi này , Excel sẽ hiển thị lỗi .

1.2 String to Long

Hàm CLng chuyển đổi giá trị chuỗi số thành kiểu dữ liệu dài . Nó hoạt động tương tự như chức năng CInt. Sự khác biệt chính nằm ở phạm vi nằm trong khoảng -2.147.483.648 2.147.483.647.

The code to run is here below:6006

Ở đây, các ô B3:B9 chứa một số giá trị chuỗi số các số l ong đã chuyển đổi nằm trong các ô C3:C9. Hàm CLng đã chuyển đổi -32800 32800 thành công thành số dài hàm CInt không thể. Nhưng nó cũng sẽ gặp lỗi nếu giá trị số nằm ngoài phạm vi.

1.3 Chuỗi thành số thập phân

Sử dụng chức năng CDec chúng ta có thể chuyển đổi a giá trị chuỗi số đến kiểu dữ liệu thập phân . Chạy đoạn mã sau để chuyển đổi các giá trị số trong các ô B3:B7 thành kiểu dữ liệu thập phân .

3191

1.4 Chuỗi thành một

Trong ví dụ này, chúng tôi sẽ chuyển các chuỗi đầu vào thành kiểu dữ liệu đơn (đơn -precision dấu phẩy động) số. Đối với điều này, chúng ta cần sử dụng hàm CSng .

Dải loại dữ liệu duy nhất- (i)  -3.402823E38 đến -1.401298E-45 dành cho số âm.

(ii) 1.401298E-45 đến 3.402823E38 cho số dương.

Chạy đoạn mã sau trong trình chỉnh sửa trực quan cơ bản.

2300

Ở đầu ra, các ô B3:B9 chứa một số giá trị chuỗi số, các số kiểu dữ liệu đơn được chuyển đổi nằm trong các ô C3:C9. Nhưng nó cũng sẽ gặp lỗi nếu giá trị số nằm ngoài phạm vi.

1.5 Chuỗi tăng gấp đôi

Trong ví dụ này, chúng tôi sẽ chuyển các chuỗi đầu vào thành kiểu dữ liệu kép (dấu nổi có độ chính xác kép -điểm) số. Đối với điều này, chúng ta cầnđể sử dụng hàm CDbl .

Kiểu dữ liệu kép nằm trong phạm vi- (i) -1.79769313486231E308 đến -4.94065645841247E-324 cho số âm.

(ii) 4.94065645841247E-324 đến 1.79769313486232E308 đối với các số dương .

Chạy đoạn mã sau trong trình chỉnh sửa trực quan cơ bản.

2053

Ở đầu ra, các ô B3:B9 chứa một số giá trị chuỗi số các số kiểu dữ liệu kép được chuyển đổi nằm trong các ô C3:C9. Nhưng nó cũng sẽ gặp lỗi nếu đầu vào giá trị số nằm ngoài phạm vi.

1.6 Chuỗi thành tiền tệ

Loại dữ liệu tiền tệ rất hữu ích khi các phép tính liên quan đến tiền . Hơn nữa, nếu chúng ta muốn tính toán cố định điểm chính xác hơn, thì việc sử dụng loại dữ liệu tiền tệ là một lựa chọn tốt. Chúng ta cần sử dụng hàm CCur để chuyển đổi một chuỗi thành kiểu dữ liệu tiền tệ . Loại dữ liệu phạm vi từ -922,337,203,685,477.5808 đến 922,337,203,685,477.5808.

Mã thành chuyển đổi giá trị chuỗi số trong số các ô B3:B7 đến loại dữ liệu tiền tệ trong các ô C3:C7 ở đây bên dưới.

2204

1.7 Chuỗi thành byte

Hàm CByte chuyển đổi các giá trị chuỗi số thành loại dữ liệu byte nằm trong khoảng từ 0 đến 255.

làtheo sau :

4033

Ở đầu ra, các ô B3:B9 chứa một số giá trị chuỗi số, các số loại dữ liệu byte được chuyển đổi nằm trong các ô C3:C9. Nhưng nó cũng sẽ gặp lỗi nếu giá trị số nằm ngoài phạm vi.

Đọc thêm: Cách chuyển chuỗi thành chuỗi dài bằng VBA trong Excel

Bài đọc tương tự

  • Chuyển chuỗi thành chuỗi kép trong Excel VBA (5 phương pháp)
  • Cách chuyển đổi văn bản thành số bằng Excel VBA (3 ví dụ với macro)
  • Sửa lỗi chuyển đổi thành số trong Excel (6 phương pháp)
  • Cách chuyển đổi ký hiệu khoa học thành số trong Excel (7 phương pháp)

2. Sử dụng hàm VBA tùy chỉnh để kiểm tra và chuyển đổi chuỗi thành số trong Excel

Trong hình minh họa này, chúng ta sẽ tạo một hàm tùy chỉnh để chuyển đổi chuỗi thành số. Sau đó, chúng ta có thể sử dụng hàm tùy chỉnh này trong trang tính của mình giống như một hàm tích hợp sẵn . Trong ví dụ này, chúng tôi sẽ sử dụng hàm CInt để chuyển đổi chuỗi thành số nguyên trong khi tạo hàm tùy chỉnh . Chúng ta cũng có thể sử dụng tất cả các chức năng khác được mô tả trong phương pháp 1 để chuyển đổi chuỗi thành các loại dữ liệu khác nhau . Bây giờ, hãy làm theo các bước bên dưới để thực hiện việc này.

Các bước:

  • Ở đây, trong các ô B3:B7, chúng ta có một số chuỗi sốcác giá trị.

  • Bây giờ, trong trình chỉnh sửa trực quan cơ bản, sao chép dán đoạn mã sau và sau đó  nhấn Ctrl + S để lưu
4140
  • Trong ô C3 , bắt đầu nhập tên hàm ( StringToNumber ). Excel sẽ tự động đề xuất hàm để sử dụng. Nhấn phím Tab để vào chức năng.

  • Đặt tham chiếu ô B3 làm đối số duy nhất.

  • Bây giờ, nhấn Enter sau khi đóng dấu ngoặc đơn.

  • Tìm Fill Handle góc dưới cùng bên phải của ô C3 để áp dụng hàm cho các ô C4:C7.

  • Đầu ra cuối cùng là các số nguyên mong muốn từ các giá trị chuỗi .

3. Mã VBA để chuyển đổi phạm vi ô đã chọn thành số trong Excel

Trong hình minh họa này, chúng ta sẽ chuyển đổi phạm vi trong số ô đã chọn chứa các giá trị chuỗi thành số nguyên. Nếu bất kỳ ô nào chứa giá trị không phải số trong đó, đầu ra sẽ là dòng gạch ngang (-) thay vì . Thực hiện theo các bước :

  • Chọn ô B3:B6 giá trị chuỗi số và B7 chứa giá trị một không phải là số

  • Trong Visual Basic Editor sao chép dán phần sau .
2441
  • Bây giờ, hãy nhấn F5 để chạy đầu ra như minh họa trong ảnh chụp màn hình sau đây.

Ghi chú

  • Chúng tôi đã sử dụng hàm isNumeric trong phương thức thứ 2 và thứ 3 trong mã VBA của chúng tôi để kiểm tra xem một biểu thức có thể được chuyển đổi thành số hay không.
  • Trong phương thức 1 , chúng tôi đã sử dụng các hàm tích hợp (CInt, CDbl, CSng…..) để chuyển đổi giá trị chuỗi số thành số . Tuy nhiên, nếu có giá trị không phải là số , giá trị đó sẽ hiển thị lỗi không khớp .

Kết luận

Bây giờ, chúng ta đã biết cách chuyển đổi giá trị chuỗi thành số trong Excel. Hy vọng rằng nó sẽ khuyến khích bạn sử dụng chức năng này một cách tự tin hơn. Mọi thắc mắc, góp ý đừng quên comment vào ô bình luận bên dưới.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.