Nhập số nguyên tự động chuyển sang thập phân???

Liên hệ QC

hoangduy_90

Thành viên mới
Tham gia
7/8/08
Bài viết
14
Được thích
0
Chào các bạn. Các bạn cho mình hỏi làm sao để khi nhập số nguyên thì excel hiển thị số thập phân (ví dụ: nhập 88, hiển thị 8.8). Cảm ơn các bạn nhiều lăm.
 
Chào các bạn. Các bạn cho mình hỏi làm sao để khi nhập số nguyên thì excel hiển thị số thập phân (ví dụ: nhập 88, hiển thị 8.8). Cảm ơn các bạn nhiều lăm.
Sao phải làm như vậy nhỉ? Bạn lười nhập liệu chăng?? Có một cách đơn giản cho bạn. Tạo một cột phụ. lập công thức bằng giá trị cột chính chia cho 10. Nhập liệu xong copy cột phụ Paste Special vào cột chính.
 
Có 1 cách đơn giản hơn. Bạn gõ vào 1 ô nào đó số 0.1 -- copy--chọn toàn bộ vùng cần đổi--PasteSpeacial--Multiply--OK
 
Tool - Option - Edit - click chọn Fix Decimal - gõ 1 vô ô đó

Ghi chú: Coi chừng nó xơi luôn những file khác sau này theo cách đó luôn.
 
Đừng vậy Ptm ơi, thay đổi thiết lập mặc định nó kéo theo các thằng khác phải theo thì sao mà kiểm soát hết. Cần nữa thì viết code mà tự chuyển có vẻ an tâm hơn.
 
Có 1 cách đơn giản hơn. Bạn gõ vào 1 ô nào đó số 0.1 -- copy--chọn toàn bộ vùng cần đổi--PasteSpeacial--Multiply--OK

Đây là cách tốt nhất. Hoặc có thể tạo một code, rồi gán vào thanh công cụ. Khi cần thì cứ bấm nó, giống như nút cách thập phân vậy đó.
 
mình thì bị ngược lại nhập 44182 thì máy nó thành 441.82 bác nào help với
Excell 2k7 nhé
 
mình thì bị ngược lại nhập 44182 thì máy nó thành 441.82 bác nào help với
Excell 2k7 nhé
Bạn làm như sau:
- Bấm nút Office Button (góc bên trái trên cùng) rồi chọn Excel Options
- Chọn mục Advanced ở khung trái rồi nhìn sang bền phải, bỏ dấu check tại mục Automatically insert a decimal point

attachment.php
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    69.6 KB · Đọc: 212
Các bạn cho mình hỏi làm sao để khi nhập số 1000 excel hiển thị số 1.0 or 500 excel hiển thị số 0.5
 
bạn có thể nói cụ thể hơn được không?
 
Xin chào các bạn!
Mình cũng có ý kiến muốn hỏi nội dung tương tự như bạn hoangduy_90 nhưng thêm yêu cầu là khi mình nhập vào số 88 thì tự động chuyển thành 8.8 còn khi mình nhập là 8.8 thì nó vẫn giữ nguyên.
Cụ thể là khi mình nhập vào một số nguyên nhỏ hơn hoặc bằng 10 thì nó giữ nguyên còn khi nhập vào số nguyên lớn hơn 10 thì nó tự động chuyển thành số thập phân nhỏ hơn 10.
Mong các bạn chỉ giáo, bạn nào có code chuyển đổi này thì càng tốt
Xin cảm ơn
 
mình cũng có yêu cầu như vậy nè...bạn nào có code giúp mình với nha.thanks
 
mình cũng có yêu cầu như vậy nè...bạn nào có code giúp mình với nha.thanks
Tôi nghĩ bạn là giáo viên và bạn muốn nhanh điểm đúng không? Bạn chép code sau vào sheet cần nhập điểm nhé! Code trong file tôi đang để ở sheet1.
Option Explicit
Public Sub WorkSheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:IV65500]) Is Nothing Then
If Target <= 10 Then
Target = Target
Else
Target = Target / 10
End If
End If
End Sub
 

File đính kèm

Sửa lại code 1 tý, thêm điều kiện cho target.
Mã:
Option Explicit
Public Sub WorkSheet_Change(ByVal Target As Range)
On Error Resume Next
Dim rng As Range
If Not Intersect(Target, [A1:IV65500]) Is Nothing Then
   If IsNumeric(Target) And Target > 10 Then
        Target = Target / 10
    Else
        Target = Target
    End If
End If
End Sub
 
Lần chỉnh sửa cuối:
Sửa lại code 1 tý, thêm điều kiện cho target.
Mã:
Option Explicit
Public Sub WorkSheet_Change(ByVal Target As Range)
On Error Resume Next
Dim rng As Range
If Not Intersect(Target, [A1:IV65500]) Is Nothing Then
   If IsNumeric(Target) And Target > 10 Then
        Target = Target / 10
    Else
        Target = Target
    End If
End If
End Sub
Vì bạn dùng sự kiện Change nên phải dùng thêm dòng lệnh này sau If not ...
Mã:
Application.EnableEvents = False
Để Target chỉ Change 1 lần thôi, nếu không sẽ Change "vô tận".
Mã:
Public Sub WorkSheet_Change(ByVal Target As Range)
If IsNumeric(Target) And Abs(Target) > 10 Then
    Application.EnableEvents = False
    Target = Target / 10
End If
Application.EnableEvents = True
End Sub
Với lại khỏi cần gán vùng cho Target ... vì làm luôn cho bảng tính.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Vì bạn dùng sự kiện Change nên phải dùng thêm dòng lệnh này sau If not ...
Mã:
Application.EnableEvents = False
Để Target chỉ Change 1 lần thôi, nếu không sẽ Change "vô tận".
Mã:
Public Sub WorkSheet_Change(ByVal Target As Range)
If IsNumeric(Target) And Abs(Target) > 10 Then
    Application.EnableEvents = False
    Target = Target / 10
End If
Application.EnableEvents = True
End Sub
Với lại khỏi cần gán vùng cho Target ... vì làm luôn cho bảng tính.
Thực ra thì chuyện thêm Application.EnableEvents tôi có nghĩ đến. Nhưng giả sử trường hợp tác giả muốn nhập điểm lẻ 7.25 thì code của bạn lại không đáp ứng được vì target nó chỉ bị thay đổi giá trị 1 lần. Nếu nhập 725 thì nó sẽ là 72.5.
Với code của tôi tôi nghĩ nó sẽ không "change" vô tận được vì đã có điều kiện dừng "change":
Nếu target<10 thì dừng.
 
Vì bạn dùng sự kiện Change nên phải dùng thêm dòng lệnh này sau If not ...
Mã:
Application.EnableEvents = False
Để Target chỉ Change 1 lần thôi, nếu không sẽ Change "vô tận".
Mã:
Public Sub WorkSheet_Change(ByVal Target As Range)
If IsNumeric(Target) And Abs(Target) > 10 Then
    Application.EnableEvents = False
    Target = Target / 10
End If
Application.EnableEvents = True
End Sub
Với lại khỏi cần gán vùng cho Target ... vì làm luôn cho bảng tính.
Thêm nữa code của bạn nó không cho nhập Text, bạn thử nhập gì gì đó, ví dụ bạn nhập dòng "tại sao mình không nhập được text nhỉ???" xem sao? Và còn nữa, bạn thử chọn 1 vùng nhiều hơn 1 ô và bấm delete xem điều gì sẽ xảy ra!
 
Thêm nữa code của bạn nó không cho nhập Text, bạn thử nhập gì gì đó, ví dụ bạn nhập dòng "tại sao mình không nhập được text nhỉ???" xem sao? Và còn nữa, bạn thử chọn 1 vùng nhiều hơn 1 ô và bấm delete xem điều gì sẽ xảy ra!
Tôi lỡ tay xóa dòng On Error Resume Next thôi.
Bạn thêm vào thử xem.
Trước khi tôi Reply bạn cũng chưa thêm dòng này trong code của bạn.
Tôi góp ý thế này: Code cho toàn bảng tính thì không cần phải Intersect ...; Không nên viết thừa code, ví dụ khai báo rng, hay Else Target = Target, vì hiển nhiên điều kiện không thỏa thì Target = Target rồi (nó có Change đâu mà phải thêm dòng này?). Từ bài #1 đến bài #8, yêu cầu và giải đáp chưa chắc phải là chuyển về số nhỏ hơn 10 mà có thể là chỉ giảm 10 lần. Từ bài #9, yêu cầu này thì code bạn đáp ứng, không cần tắt sự kiện.
 
thanks bạn rất nhiều. Nhưng mình chỉ làm trên 1 vùng bất kỳ thui chứ không phải toàn bảng tính....hihi...cám ơn bạn rất nhiều, chứ nói về excel là minh dốt lắm

Mà sao dữ liệu chỗ vùng lại nhấp nháy vậy...khó nhìn quá. bạn chỉnh lại giúp mình được không. thanks nhiu lắm hihi
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

Bài viết mới nhất

Back
Top Bottom