Ich erlaube Benutzern, Daten in ein Excel-Blatt einzugeben. Ich möchte, dass die von ihnen eingegebenen Daten ganz einfache Zahlen sind. Wenn der Benutzer Kommas mit seiner Nummer eingibt, ignoriert Excel das Komma und hat nur die gesamte einfache Nummer für die Zeilendaten. Gibt es eine Möglichkeit, das zu tun? Ich denke, eine Möglichkeit, den Datentyp der Zeile zu ändern?
4 Antworten
Dies wird nicht genau das tun, was Sie wollen, da es ihnen nicht erlaubt, das Komma einzugeben, anstatt das Komma zu entfernen.
- Wählen Sie den Zellenbereich aus
- Wählen Sie auf der Registerkarte Daten die Option Datenüberprüfung aus.
- Wählen Sie in der Dropdown-Liste Zulassen die Option "Ganze Zahl".
- Konfigurieren Sie in der Dropdown-Liste Daten und anderen Optionen den Filter so, dass der gewünschte Typ der ganzen Zahl zugelassen wird (wählen Sie beispielsweise für positive Zahlen "größer als" und dann 0.
- Füllen Sie auf der Registerkarte "Fehlerwarnung" des Popups die Fehlermeldung "Bitte geben Sie nur eine ganze einfache Zahl ein" aus.
- OK klicken
- Klicken Sie mit der rechten Maustaste auf die Zeilennummer
- Zelleigenschaften
- Benutzerdefiniert
- Öffnen Sie den VBEditor mit Strg + F11 .
- Sie sehen so etwas wie das Bild unten;
- Drücken Sie Strg + R , wenn Sie es nicht sehen.
- Fügen Sie bei
ThisWorkbook
diesen Code ein:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey ","
End Sub
Private Sub Workbook_Open()
Application.OnKey ",", "NotAllowed"
End Sub
- Wählen Sie dann ThisWorkbook> Rechte Maustaste> Hinzufügen> Modul.
- Fügen Sie in eine
Module
Folgendes ein:
Public Sub NotAllowed()
MsgBox ("Not allowed to use the "","" key!")
End Sub
Wann immer jemand , sieht, sieht er:
Dieses Makro entfernt aktiv Kommas sowohl in Daten als auch in der Formatierung von eingegebenen Daten in einem bestimmten Bereich. Sie müssen mit der rechten Maustaste auf den Blattnamen klicken und "Code anzeigen" auswählen, um das Ereignis hinzuzufügen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NO_COMMAS_REGION As Range
Set NO_COMMAS_REGION = Range("A:A") ' Replace this with whatever the region is where you want to prevent commas
For Each cell In Target
If Not (Application.Intersect(cell, NO_COMMAS_REGION) Is Nothing) Then
If InStr(cell.Value, ",") > 0 Then
cell.Value = Replace(cell.Value, ",", "")
End If
cell.NumberFormat = "0"
End If
Next cell
End Sub
Neue Fragen
excel
Nur für Fragen zur Programmierung mit Excel-Objekten oder -Dateien oder zur Entwicklung komplexer Formeln. Sie können das Excel-Tag gegebenenfalls mit VBA-, VSTO-, C # -, VB.NET-, PowerShell-, OLE-Automatisierungs- und anderen programmierbezogenen Tags und Fragen kombinieren. Allgemeine Hilfe zu MS Excel für einzelne Arbeitsblattfunktionen finden Sie unter Super User.