2016-04-09 14 views
-1

Ich möchte den Wert von textbox2 beim Beenden von Textbox1 oben ausgefüllt werden, aber VBA-Code funktioniert nicht.Excel in Benutzerformular Textfeld mit VBA

Private Sub textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
    textbox1.Value = Format(textbox1.Value, "dd/mm/yyyy") 
    textbox2.Value.Formula = "=Right(if(month(textbox1.value)>3,Year(textbox1.value)+1,Year(textbox1.value)),2)" 
End Sub 
+1

Need Bearbeitung zur besseren Lesbarkeit –

Antwort

-1

Weder Textbox Objekt noch seine .Value Eigenschaft haben Formula Mitglied, wie range Objekt hat.

So müssen Sie Berechnungen direkt im Code vornehmen.

Versuchen Sie, diese

Private Sub textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
    TextBox1.value = Format(TextBox1.value, "dd/mm/yyyy") 
    TextBox2.value = Right(CStr(IIf(Month(TextBox1.value) > 3, Year(TextBox1.value) + 1, Year(TextBox1.value))), 2) 
End Sub 

könnten Sie auch gehen:

Private Sub textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
    TextBox1.value = Format(TextBox1.value, "dd/mm/yyyy") 
    TextBox2.value = IIf(Month(TextBox1.value) > 3, Year(TextBox1.value) + 1, Year(TextBox1.value))) mod 1000 
End Sub 
+1

Ihre letzten 10 Antworten (und wahrscheinlich alle von ihnen) werden in Kleinbuchstaben geschrieben, als ob Sie posten von einem Mobiltelefon aus. Könnte ich Ihnen Schwierigkeiten bereiten, die Shift-Taste gelegentlich zu benutzen? Es macht die Dinge besser lesbar ':-)' – halfer

+0

Ich mag Kleinbuchstaben – user3598756

+1

Anscheinend so. [Bitte lesen Sie dies] (http://meta.stackoverflow.com/q/293779/472495). – halfer

Verwandte Themen