So rufen Sie die VBA-Funktion von excel
Habe ich en excel-Datei, wo ich Gültigkeitsregel. Ich habe eine Zelle, lassen Sie sagt, "Kunden", wo Benutzer können geben Sie Zeit, aber es ist Zeit anpassen. Benutzer können geben Sie die Zeit ein wie dass
23:45
98:20
100:30
Benutzer nicht geben Sie die Zeichenfolge und keine speziellen Zeichen außer dem Doppelpunkt. Ich habe aus einem makro und es funktioniert perfekt accoriding zu Kunden zu verlangen. Hier ist makro
Public Function isValidTime(myText) As String
Dim regEx
Set regEx = New RegExp 'Regular expression object
regEx.Pattern = "^[0-9]+([:]+[0-9]+)*$" ' Set pattern.
If regEx.test(myText) Then
isValidTime = myText
Else
isValidTime = "Null"
End If
End Function
Hinweis: Um dieses makro testen, wechseln Sie zum VBA-ide in der Tool-Referenz und wählen Sie die microsoft visual basic vbascript 5.5
Nun möchte ich diesen Aufruf in excel. Ich kann rufen wie =IsValidTime("23:43") und bekommen das Ergebnis, aber Kunde ist nicht daran interessiert, diesen Aufruf. Kunden benötigen ein excel, in dem er/Sie den Wert eingeben und der Wert wird validiert nach oben genannten Kriterien und Sie bekommen den genauen Wert oder Null.
Ich weiß nicht, wie fix diese Aufgabe. Ich habe Überprüft Datum und Zeit sowie von Daten und Daten-Validierung und legen Sie die Regel, und es funktioniert perfekt, ich brauche die gleiche Art und Weise für meine diese Regel gut. Jede Hilfe wird sehr geschätzt...
Dank
Kazmi
- Vielleicht schauen Sie unter: stackoverflow.com/q/4647693/471129
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
Worksheet_Change
Ereignis in der Platte. Innerhalb des VBE, wählen Sie die Tabelle, und wählen SieWorkhseet
aus der linken drop-down-undChange
von der rechten Seite.Geben Sie den folgenden code:
If Target.Address = "$A$1"
gibt an, dass der code nur dann feuert, wenn die änderung in Zelle A1. Wenn Sie möchten, erweitern Sie Ihre Auswahl oder wählen Sie verschiedene Zellen, die Sie haben, um es zu ändern. Ein Weg, um mehrere Bereiche ist zu sagenIf Intersect(Target,Range("A1:A30"))
... Sie spielen können, mit zu bekommen, was Sie brauchen.