2017-11-09 2 views
0

Leute, ich habe Schwierigkeiten, dieses Stück Code zu bekommen, wie Makro aus einer Excel-Tabelle (mit dem Namen „Kalender“) auszuführen:Excel VBA - Zelleigenschaften zuweisen wirft Fehlernummer 1004

Public Function dcTest(s As String) As String 
    Dim ws As Worksheet 

    On Error GoTo dcTestExit 
    Err.Clear 

    Set ws = ActiveSheet 
    ' Set ws = Worksheets("Kalender") '... same error (and yes, the sheet exists!) 
    ' ws.Cells(2, 2).FormulaR1C1 = s 
    ws.Cells(2, 2).Value = s 

dcTestExit: 
    Set E = Err 

End Function 

Der Fehler tritt auf, wenn Ich versuche, an die Value oder FormulaR1C2 Eigenschaft zu schreiben. Die Funktion wird als "benutzerdefinierte" Funktion von einem Excel-Blatt wie =dcTest("whatever") aufgerufen.

Können Sie mir in die richtige Richtung zeigen? RT (F) M begrüßen, solange mit Details ...

Cheers, ChrisF

+0

Verwenden Sie eine ** sub ** und nicht eine ** Funktion **. –

+0

Können Sie genauer angeben, wie/wo die Funktion aufgerufen wird ..? Ich habe zahlreiche Varianten Ihres Codes aus dem Debug-Fenster und auch eine ActiveX-Taste ausprobiert, und ich kann es nicht zum Scheitern bringen. – spinjector

+0

@ Gary'sStudent Beratung ist richtig! Offensichtlich kann man Zelleninhalte nicht innerhalb einer Funktion ändern, sondern nur innerhalb einer Untereinheit. – ChrisF

Antwort