Hiện giá trị ô trong textbox

Liên hệ QC

carsen4u

Thành viên mới
Tham gia
18/5/12
Bài viết
47
Được thích
0
Nhờ các bạn giúp giùm đoạn code hiện giá trị ô A1 trong textbox trên form, và khi sửa giá trị trong textbox đó thì sẽ gán được vào ô A1

Thanks
TD
 
Tôi quay phim lại cho bạn coi nhé!

Kỳ lạ, mình đã boot máy, chạy thử file của bạn vẫn thấy tình trạng như đã nói, mày mò quay phim lại, bạn xem thử nhé:

http://youtu.be/9wT-VA9y3hE

Brds

Tôi thử rất nhiều máy, nhiều hệ điều hành, Excel 2003 và 2007 trên cái file đó, thế mà có bị như vậy đâu?

Bây giờ, mở cái file đó, trong môi trường VBA (Alt+F11) bạn bấm Ctrl+G để mở cửa sổ Immediate rồi bạn gõ:

?Val(Sheet1.[A1].Value)

Rồi Enter xem nó ra cái gì rồi tính tiếp nhé!
 
Upvote 0
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Ô A1 = 50%, định dạng theo file của bạn (percentage).

Ko lẻ excel bị hư công thức???

Brds
 
Upvote 0
tại ô khác trong excel, =value(A1), giá trị là 0.5 (General format)
Brds
 
Upvote 0
Từ 99% trở xuống, giá trị trong texbox=0 khi click vào "nhap lên form"; từ 100% trở lên, hiển thị đúng ???

Brds
 
Upvote 0
Các bạn kiểm tra lại giùm nhé (window XP, Office 2007, virus AVG 8.5.xxx update 5.Oct.2012)

Chỉ những số bội số 100 mới hiển thị đúng trong texbox, mình có quay lại thao tác 1 lần nữa đây (bên màn hình visual basic, đã sắp xếp các cửa sổ để thấy hết dòng lệnh và bấm nút run)

[video=youtube_share;mHYqc8WVS7k]http://youtu.be/mHYqc8WVS7k[/video]

Và file excel:
View attachment TextBox.xls

Cám ơn các bạn
 
Lần chỉnh sửa cuối:
Upvote 0
Các bạn kiểm tra lại giùm nhé (window XP, Office 2007, virus AVG 8.5.xxx update 5.Oct.2012)

Chỉ những số bội số 100 mới hiển thị đúng trong texbox, mình có quay lại thao tác 1 lần nữa đây (bên màn hình visual basic, đã sắp xếp các cửa sổ để thấy hết dòng lệnh và bấm nút run)



Và file excel:


Cám ơn các bạn

Bạn có thể chụp lại hình mà máy bạn Control Panel, Region and Language, Customise Format hay không?
 
Upvote 0
Theo yêu cầu:

Bạn xem lại nhé
Thanks

Giờ, thay vì: TextBox1 = Val(Sheet1.[A1].Value) * 100



Bạn chuyển lại như vầy đi:

Mã:
Private Sub CommandButton2_Click()
    [COLOR=#ff0000][B]TextBox1 = Sheet1.[A1].Value * 100[/B][/COLOR]
    TextBox1.SetFocus
End Sub

Tôi nghi là đúng mà! Vậy đi nhé!
 
Upvote 0
hehe, chính xác, nhưng bạn có thể giải thích là tại sao excel trên máy bạn, cũng như ndu96081631 thì hiển thị đc kết quả mà của mình thì phải chỉnh lại, ko lẻ excel của mình có cách tính khác à.

Thanks
 
Upvote 0
hehe, chính xác, nhưng bạn có thể giải thích là tại sao excel trên máy bạn, cũng như ndu96081631 thì hiển thị đc kết quả mà của mình thì phải chỉnh lại, ko lẻ excel của mình có cách tính khác à.

Thanks

Bởi vì nhiều người cài đặt theo chuẩn của quốc tế về dấu phân cách hàng ngàn (dấu phẩy), còn bạn theo chuẩn Việt Nam (dấu chấm). Hàm Val xác định giá trị số ở dạng text về lại dạng number, khi dấu phân cách thập phân ở dạng 0,00 (kiểu VN) thì với Range("A1").Value, giả sử là 25% nó có dạng 0,25. Với hàm Val khi gặp trường hợp này là nó lấy những giá trị trước dấu phẩy, vì vậy Val(0,25) sẽ cho ra là 0 và nếu ô A1 = 550% , thì Val(5,5) = 5, vậy hàm Val tại sao lại cho ra kết quả như vậy? Theo tôi nghĩ, với định dạng kiểu #,##0.0 (kiểu quốc tế) thì đằng sau dấu phẩy nó sẽ có 3 ký số ở đằng sau thì nó mới là dạng số, với kiểu của VN thì không như vậy nên nó hiểu là dạng chuỗi, mà ở dạng chuỗi thì nó chỉ lấy giá trị số trước dấu phẩy, nếu không có số thì xem như bằng 0. Thí nghiệm bạn sẽ thấy, cũng tại ô A1 bạn gõ 9HTN và tại Immediate bạn ghi ?Val(Range("A1").Value) rồi enter, tôi nghĩ nó sẽ ra số 9. Tới đây bạn đã hiểu vấn đề chưa nhỉ?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom