Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1524to1528
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

vba SheetNames mit unicodezeichen bekommen

vba SheetNames mit unicodezeichen bekommen
23.11.2016 14:08:59
ExtremeExceling
Hallo zusammen,
ich habe Unicode Symbole bzw. Zeichen in den TabellenNamen.
edoch zeigt mir VBA und VBE, die Sheets(1).name als normalen String an der keine unicode-Symbole anzeigt.
Mit dem kleinen makro, das man sich in ein ein modul einfügen kann.
Wenn man es nicht bereits offen hat, kann man sich dasDirektfenster bzw. die Konsolen ansicht ausgeben lassen(Strg+G). (Strg+A und Entf Taste entfernt die temporären Inhalte darin wieder.)
Makros zum anzeigen von Worksheet infos.
Sub sheetInfoNamesAsSheetNames()
Dim aSheet As Worksheet
For Each aSheet In ThisWorkbook.Sheets
Debug.Print "SheetIndex: " & aSheet.Index & vbCrLf & "SheetName: " & aSheet.Name &  _
vbCrLf & "SheetCodeName: " & aSheet.CodeName & vbCrLf & vbCrLf
Next aSheet
End Sub
Auf der folgenden Website, kann man sich unicode symbole heraussuchen
http://emojipedia.org/objects/
Ich denke das thema wird mit der Zeit immmer Interresanter.
Meine Frage wie bekomme den String
aSheet.Name
nicht als utf-8 oder singeBit character oder wa das ist, sondern als utf-16 oder unicode?
Die Frage bleibt dann ob ich dann genauso noch addressieren kann mit
Sheets("einName☎️Phones").Range("A1")="Gurken Esser"
Ich merke gerade der VBA Editor in sich selbst, scheint es nicht zu Unterstützen.
Wobei excel und die Formeln damit eigentlich zurecht kommen, seblst indirekt().
Nur das Indirekt scheinbar empfindlich auf Rechenzeichen wie Klammenrn {},(),- ,+ , Leerzeichen in Tabellenblattnamen, indirekt versucht dann ähnlich wie die evaluate Funktion diese dann diesen Text innerhalb der Klammern,etc. ausrechnen
und bekommt es dann nicht richtig hin innerhalb von Excel(nicht vba) adressieren.
Jedoch funktionieren die Unicodezeichen dort.
Was ich bisher interessantes gefunden hatte war dieses hier, aber ich denke das hat mit dem Import/Export von/zu einer DB-Webplattform zu tun, nach/von Excel.
http://ebanshi.cc/questions/302603/how-to-get-named-excel-sheets-while-exporting-from-ssrs
hat jemand eine Idee den Editor() ggf. umzustellen oder braucht man da Visual Studio bzw. vb.net?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
vba SheetNames mit unicodezeichen bekommen
24.11.2016 18:49:34
Michael
Hi,
auf dem Umweg über eine Zelle schon;
range("c2").Value=activesheet.name
sheets(range("c2").Value).select

Nimm halt die Codenames für die Schleife...
Schöne Grüße,
Michael
AW: vba SheetNames mit unicodezeichen bekommen
24.11.2016 19:45:51
ExtremeExceling
Ja, wenn ich so darüber nachdenke,
Deine Anmerkung ist wirklich gut, als Lösungsweg über eine Zelle zu gehen.
Hatte das auch schon gesehen oder ähnliches ist mir aber in meinem konkreten Anwendungsfall nicht gleichgekommen, da ich Konfiguration Zellen habe, ist das eine gute Idee.
Hatte hier noch weitere interessante Infos gefunden, falls jemand sich noch mit dem Thema auseinander-gesetzt.
Mein Gedanke hinter meinem Vorhaben ist der:
Auflistung aller Makros in einem Tabellenblatt, bzw. eine Genaue Auflistung, dort kommen auch Tabellenblattnamen vor, Problem dieser Geschichte ist, das im VisualBasicEditor als VBE-Objekt-model, diese Sheet Namen wahrscheinlich nicht als Unicode-Zeichen zu bekommen sind, ohhh stimmt nicht, habe eben deinen VBA-Code getestet, und es nochmals anders rum probiert :-).
Und habe in dem 1. Tabellenblatt den BlattNamen geändert, ein Unicode-Zeichen hinzugefügt
z.B. 🐑
http://emojipedia.org/sheep/
Sub einTest()
Range("c2").Value = ActiveSheet.Name
Sheets(Range("c2").Value).Select
Range("C2").Clear
Range("C2").Value = Sheets(1).Name
End Sub
Und ja, scheinbar hat VBA es dennoch richtig drinnen, dann muss ich mal die weiteren infos ausprobieren.
Die ich hier noch gefunden hatte.
ChrW(425) ähnliche wie chr() nur w für wider(zahlen Bereich) ähnlich der Excelformel =zeichen()
https://www.herber.de/forum/archiv/740to744/742923_Einfuegen_Symbol_in_VBA_moeglich.html
gegenstück zu chrw(),
Die Funktionen "Asc" und "AscW" ähnlich wie in Excel-Funktionen code(erstes Zeichen eines Strings) gibt integer Nummer zurück
oder die Excel-Funktion unicode(String) kann höhere Werte zurückgeben
Asc Gibt die Codepunkt, oder Zeichencode für das Eingabezeichen. Dies kann zwischen 0 und 255 für Single-Byte-Zeichen festlegen (SBCS) von Werten und-32768 bis 32767 Doppelbytezeichen (DBCS) Zeichensatzwerte sein.
AscW Gibt den Unicode-Codepunkt für das Eingabezeichen zurück. Dies kann 0 bis 65535 sein. Der zurückgegebene Wert ist unabhängig von der Kultur und Seiten Einstellungen für den aktuellen Thread.
siehe dazu
https://msdn.microsoft.com/de-de/library/zew1e4wc(v=vs.90).aspx
https://msdn.microsoft.com/de-de/library/ey48db8z(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
eine andere Lösung die ich noch nicht ganz verstanden bzw. nicht ganz fertig gelesen hatte, ist hier.
StrConv("abc", vbFromUnicode) mit UBound() und Hex() http://www.di-mgt.com.au/howto-convert-vba-unicode-to-utf8.html
weitere kürze Möglichkeiten
vba chr() bzw. chrw() ähnlich der Excel-Funktion zeichen() und unizeichen()
https://msdn.microsoft.com/de-de/library/613dxh46(v=vs.90).aspx
https://msdn.microsoft.com/de-de/library/microsoft.visualbasic.strings.chrw(v=vs.110).aspx
charw() ok net getestet:
http://www.mrexcel.com/forum/excel-questions/351799-unicode-characters-visual-basic-applications-editor.html#post1738596
andere Art per Registry
Ok nicht sicher ob es dann für einen anderen Rechner geht, hier wird die Standard Schrift für den Editor vom Windows seitig umgestellt.
http://www.spreadsheet1.com/how-to-display-foreign-characters-in-vbe.html
in einem der Kommentare schreibt jemand noch von der MessageBoxW(), eine Messagebox mit größerem Zeichen Radius, die man in VBA erst kurz einbindet in dem man diese deklarieren kann.
weitere Infos zur Registry für andere Sprachen, ich denke die sprache muss dann aber im System installiert sein
bei mir war die Nummer 850, oder englisch
http://archives.miloush.net/michkap/archive/2005/02/08/369197.html
vielen Dank und Grüße
Daniel
Anzeige
danke für die Anregung,
25.11.2016 19:47:43
Michael
Daniel,
das ist mal was *ganz* anderes...
Ich fürchte nur, daß der Effekt relativ schnell langweilig wird (so wie die hüpfenden Briefkästen auf diversen Homepages), und ob sich dann die ganze Fummelei rentiert?
Naja, Geschmackssache.
Happy Exceling,
Michael

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige