Thay đổi dấu chấm thành dấu phẩy và ngược lại trong UDF


0

Tôi có UDF Excel này để loại trừ tất cả các ký tự không phải là số từ một ô, ngoại trừ dấu chấm và dấu phẩy; Nhưng trước khi nó xóa số của tôi, tôi muốn thay đổi tất cả các dấu phẩy thành dấu chấm và ngược lại. Tôi không biết nơi nào để thực hiện thay đổi này trong mã của tôi. Cảm ơn

Function cleannumber(texto As String) As String 
Dim volta As String 
Dim pedaco As String 

volta = "" 
For i = 1 To Len(texto) 
   pedaco = Mid(texto, i, 1) 
   If pedaco >= "0" And pedaco <= "9"  Or pedaco = “,” Or pedaco =”.” Then volta = volta & pedaco 
Next i 
cleannumber = volta 
End Function

Bạn đang tìm kiếm hàm Thay thế (): msdn.microsoft.com/en-us/l Library / bt3szac5% 28v = vs.90% 29.aspx ?
duDE

Tôi có thể chèn chức năng đó trong chức năng udf của mình để thay đổi dấu phẩy thành dấu chấm và ngược lại trước khi xóa số ô của tôi không?
Emanuel

như thế này: các dấu chấm và dấu phẩy biến mất
Emanuel

Để tham khảo trong tương lai, một hàm trong VBA sẽ trả về một cái gì đó, trong khi một chương trình con sẽ làm một cái gì đó. Ở đây bạn có một chức năng làm cả hai.
Raystafarian

Câu trả lời:


1

Trước khi Iftuyên bố:

pedaco = Replace(pedaco, ".", "whatever")
pedaco = Replace(pedaco, ",", ".")
pedaco = Replace(pedaco, "whatever", ",")

như thế này, các dấu chấm và dấu phẩy được loại trừ Hàm dọn dẹp (texto As String) As String Dim volta As String Dim pedaco As String volta = "" For i = 1 To Len (texto) pedaco = Mid (texto, i, 1) pedaco = Thay thế (pedaco, ".", ",") Pedaco = Thay thế (pedaco, ",", ".") Nếu pedaco> = "0" Và pedaco <= "9" Hoặc pedaco = lỗi, hay Hoặc pedaço = Ngay sau đó volta = volta & pedaco Tiếp theo tôi dọn dẹp = volta Kết thúc chức năng Trước khi:
Emanuel

Giờ thì tôi đã hiểu! pedaco = Thay thế (pedaco, ".", "bất cứ điều gì") pedaco = Thay thế (pedaco, ",", ".") pedaco = Thay thế (pedaco, "bất cứ điều gì", ",") Fantastico !!! Cảm ơn rất nhiều
Emanuel

Tôi làm việc tốt cho tôi ... Cảm ơn một lần nữa. Tôi chỉ muốn hiểu tại sao tức là 3.789,90 được chuyển đổi trong 3789,90 mà không có dấu chấm .. Tôi có thể luôn luôn thêm dấu chấm bằng cách thay đổi định dạng số. Nhưng Id thực sự muốn hiểu tại sao dấu chấm biến mất
Emanuel

@Emanuel Tôi không hiểu bình luận của bạn.
Học sinh của Gary

thói quen của bạn không bao gồm de dot tức là 3.789,90 được chuyển đổi thành 3789,90
Emanuel

0

Mã sửa đổi:

Function cleannumber(texto As String) As String 
Dim volta As String 
Dim pedaco As String 

volta = "" 
For i = 1 To Len(texto) 
   pedaco = Mid(texto, i, 1) 

   // Add the below line
   pedaco = Replace(pedaco, ",", ".")

   If pedaco >= "0" And pedaco <= "9"  Or pedaco = “,” Or pedaco =”.” Then volta = volta & pedaco 
Next i 
cleannumber="'" & volta
End Function

Cảm ơn, nhưng như thế, tức là 5.675,90 được chuyển đổi trong 5.675.90 Tôi đã mong đợi 5.675.90 sẽ được chuyển đổi thành 5.675,90
Emanuel

bạn nói rằng bạn phải thay thế ',' bằng dấu chấm để đoạn mã trên thực hiện những gì bạn yêu cầu.
AsimRazaKhan

nếu bạn muốn thay thế dấu chấm '.' thành dấu phẩy ',' sau đó trong đoạn mã trên thay đổi dấu phẩy bằng dấu chấm và dấu chấm bằng dấu phẩy.
AsimRazaKhan

Cảm ơn tất cả mọi người tôi thực sự đánh giá cao sự chú ý. Vấn đề của tôi đã được giải quyết!
Emanuel

Oky, sau đó chỉnh sửa câu trả lời của chúng tôi và phê duyệt câu trả lời chính xác cho người dùng khác nếu gặp phải vấn đề tương tự. :)
AsimRazaKhan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.