Excelのファイルを持ち、数値を入力するために1つの列を検証しますが、数値が18より小さいかのように書式設定されて先頭のゼロが追加されます。しかし、今では15桁目の数字が0に変換されます。例: "002130021300020789"、9は0に変更されます。テキストを列に変換した後、それを受け入れますが、先行ゼロを追加することはできません。 onluの数字を入力する。数字だけを入力するようにセルを制限する方法
ご協力いただきありがとうございます。
Excelのファイルを持ち、数値を入力するために1つの列を検証しますが、数値が18より小さいかのように書式設定されて先頭のゼロが追加されます。しかし、今では15桁目の数字が0に変換されます。例: "002130021300020789"、9は0に変更されます。テキストを列に変換した後、それを受け入れますが、先行ゼロを追加することはできません。 onluの数字を入力する。数字だけを入力するようにセルを制限する方法
ご協力いただきありがとうございます。
MS Articleゼロを追加することができます
Range("A1").NumberFormat = "@"
をテキストに、セルの書式を変更することができます:Excelが浮動小数点数を格納し、計算方法IEEE 754 specificationを次の。したがってExcelは数字に15桁の有効桁のみを格納し、15桁目以降の桁を0に変更します。
数字の書式を取得し、ユーザーが数字だけを入力できるようにするには、これを行うことができます。私はあなたが範囲A1のテキストを検証していると仮定しています。該当する場合は改訂してください。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
Application.EnableEvents = False
If Not Intersect(Target, Range("A1")) Is Nothing Then
'~~> If entered text is not a number then erase input
If Not IsNumeric(Range("A1").Value) Then
MsgBox "invalid Input"
Application.Undo
GoTo LetsContinue
End If
Range("A1").Value = "'" & Format(Range("A1").Value, "000000000000000000")
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
フォロー
あなたがコピーして貼り付けているなら、あなたは最初のフォーマットに範囲G11を持っています:手動TEXTとして、その後
SNAPSHOTこのコードを使用G65536 (数値貼り付けの場合)
SNAPSHOT(貼り付け数値以外の値)
CODE
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
Dim cl As Range
Application.EnableEvents = False
If Not Intersect(Target, Range("G11:G" & Rows.Count)) Is Nothing Then
For Each cl In Target.Cells
'~~> If entered text is not a number then erase input
If Not IsNumeric(cl.Value) Then
MsgBox "invalid Input"
Application.Undo
GoTo LetsContinue
End If
cl.Value = "'" & Format(cl.Value, "000000000000000000")
Next
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
あなたの提案とコードのヘルプのためのThaks。しかし、私は別のシートからデータをコピーしているときに、15桁の後に値を貼り付けた後、ゼロに変換され、列全体を検証する方法G11:g65536。 – user1049518
ワークシートの変更イベントでコピーの貼り付けをキャプチャすることもできます。例を挙げてみましょう:) –
投稿更新日: –
まず、あなたは、あなたが
cellvalue2 = Format(cellvalue1, "000000000000000") // for numeric fields
or
= TEXT(cellvalue1,"000000000000000") // for textfields
+1この制限を回避する別の方法:) –
+ 1良い質問:) –