Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array (single) an variable aus Namensmanager überg

Array (single) an variable aus Namensmanager überg
20.09.2018 06:58:42
Nils
Hallo,
Ich stehe vor einer neuen Herausforderung. Ich möchte ein Array an eine Variable im Namensmanager übergeben, zB:
Dim Werte(0 to 3) as Single
Dim StrWerte as String
Werte(0)=2.3
Werte(1)=2.9
Werte(2)=3.9
Werte(3)=4.2
' Geht nicht:
ActiveWorkbook.Names("Werte").refersto = Werte
' Geht auch nicht:
StrWerte = "={" & Werte(0) & ";" & Werte(1) & ";" & Werte(2) & ";" & Werte(3) & "}"
ActiveWorkbook.Names("Werte").refersto = StrWerte
Auch wenn ich den Punkt durch ein Komma ersetze habe ich keinen Erfolg...
Was muss ich tun, damit mein Plan aufgeht?
Ich bin für jede Hilfe dankbar

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array (single) an variable aus Namensmanager überg
20.09.2018 08:19:18
fcs
Hallo Nils,
probiere es mal so:
Sub Makro2()
Dim Werte(0 To 3), i, strReferto
Werte(0) = 2.3
Werte(1) = 2.9
Werte(2) = 3.9
Werte(3) = 4.2
'    ActiveWorkbook.Names("Werte").RefersTo = _
"={""1,0"";""2,0"";""3,0"";""4,0"";""5,0""}" 'mit Rekorder aufgezeichet
strReferto = "={""" & Werte(0)
For i = LBound(Werte) + 1 To UBound(Werte)
strReferto = strReferto & """;""" & Werte(i)
Next
strReferto = strReferto & """}"
ActiveWorkbook.Names("Werte").RefersTo = strReferto
End Sub
Gruß
Franz
AW: Array (single) an variable aus Namensmanager überg
20.09.2018 10:20:16
Daniel
Hi
bei der Umwandlung der Zahlen in Text gibt dir die implizite Typumwandlung das deutsche Komma als Dezimialzeichen zurück.
Bei der erstellung des Namens mit RefersTo brauchst du aber die internationale Schreibweise mit Punkt als Dezimalzeichen, oder du musst VBA explizit mitteilen, dass die Namensdefinition in deutscher Schreibweise angegeben wird, hierzu verwendet man RefersToLocal
noch ein Tip: wenn du dein Array als Variant deklarierst, kannst du die Werte mit Hilfe der Funktion JOIN zusammensetzen:
Sub Makro1()
Dim Werte(0 To 3)
Dim StrWerte As String
Werte(0) = 2.3
Werte(1) = 2.9
Werte(2) = 3.9
Werte(3) = 4.2
StrWerte = "={" & Join(Werte, ";") & "}"
ActiveWorkbook.Names.Add Name:="Werte", RefersToLocal:=StrWerte
End Sub

Anzeige
AW: Array (single) an variable aus Namensmanager überg
20.09.2018 15:09:18
Nils
Danke Daniel und Franz, jetzt habe ich schon mal 2 Ansätze die mir sicherlich weiterhelfen.
Was mache ich wenn jemand das dezimalzeichen in den einstellungen ändert? Hat das einen wffekt auf referstolocal?
AW: Array (single) an variable aus Namensmanager überg
20.09.2018 20:05:12
Daniel
Hi
Müsstest du testen.
Sollte aber funktionieren, da die implizite Typumwandlung das gleiche Trennzeichen verwenden sollte wie RefersToLocal.
Gruß Daniel
AW: Array (single) an variable aus Namensmanager überg
20.09.2018 21:55:04
Nils
Das einzige was bei mir geklappt hat ist:
Sub Test()
Dim ArrWerte_x(5) As Variant 'Single erzeugt sehr viele Nachkommastellen
Dim ArrWerte_y(5) As Variant 'Single erzeugt sehr viele Nachkommastellen
ArrWerte_x(0) = 1
ArrWerte_x(1) = 2
ArrWerte_x(2) = 3
ArrWerte_x(3) = 4
ArrWerte_x(4) = 5
ArrWerte_x(5) = 6
ArrWerte_y(0) = 5
ArrWerte_y(1) = 330
ArrWerte_y(2) = 250.1
ArrWerte_y(3) = 33.3
ArrWerte_y(4) = 200.6
ArrWerte_y(5) = 12.1
ActiveWorkbook.Names.Add "x_Werte", ArrWerte_x
ActiveWorkbook.Names.Add "y_Werte_Messdaten", ArrWerte_y
End Sub

Anzeige
AW: Array (single) an variable aus Namensmanager überg
20.09.2018 22:43:04
Daniel
Das ist dann ja noch einfacher.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige