2017-02-07 4 views
1

ich den folgenden VBA-Code bin mit dem Problem zu reproduzieren:Erzwingen Sie einen benannten Bereich zu einer Zeichenkette verweisen

ActiveWorkbook.Names.Add "Test", RefersTo:="1-2" 

Der resultierende benannten Bereich bezieht sich auf „= 42767“ statt = "1-2 "

enter image description here

es scheint, dass es eine gewisse Berechnung tut und RefersTo auf das Ergebnis einstellen. Wie kann ich den Bereich zwingen, auf die Zeichenkette „1-2“

Ein weiteres Beispiel (wenn auch nicht als störend)

ActiveWorkbook.Names.Add "Test", RefersTo:="123" 

Ergebnisse in RefersTo=123 anstelle der gewünschten RefersTo="123" (Anzahl vs Text) zu beziehen

Eingabe des RefersTo über die grafische Benutzeroberfläche mit Zitaten schöne Werke aber tun es durch VBA wird es

geändert
+0

Vielleicht als Text in die reichten Namen gezwungen werden sollen: 'ActiveWorkbook.Names.Add„Test“, RefersTo: = Chr (34) & "1-2" & Chr (34) ' – Fadi

+0

Das führt zu einer Zeichenkette, die Anführungszeichen enthält ... Es sieht so aus, als ob ein '=' in Front eingefügt wird, funktioniert aber! – levitatejay

+0

FWIW - Ihr vorhandenes '1-2' wird als '1. Februar 2017' (d. H. Tagnummer 42767) behandelt. – YowE3K

Antwort

1

der folgende Code funktioniert

ActiveWorkbook.Names.Add "test", RefersTo:= "=" & Chr(34) & "1-2" & Chr(34) 

Sie können „1-2“ mit einem beliebigen String-Variable oder wörtlichen ersetzen, dass Sie

+0

Ja oder 'RefersTo: =" = "" 1-2 "" "'. Das ist es. –

Verwandte Themen