2016-04-19 2 views
2

Dies ist meine erste Frage hier, also bitte, ertragen Sie mit mir ...Excel VBA - mein VBA-Code wurde durcheinander gebracht: Warum mutierten die spanischen Zeichen (á, é, í, ó, ú, ñ, ¡, ¿)?

Wie ich versuchte, auf den Titel zu erklären, wurde mein VBA-Code in einer Excel-Arbeitsmappe alle durcheinander gebracht. Die Arbeitsmappe wurde für viele Leute freigegeben, so dass sie einige Daten eingeben konnten (es ist komplexer, aber lassen wir es einfach dabei), und einige der Dateien, die ich erhalten habe, funktionieren nicht: Ich bekomme den Fehler 400, keinen Code scheint zu funktionieren.

Sagen wir, ich benannte Bereiche verwenden, um festzustellen, wo die sensiblen Daten zugeordnet ist, aber die meisten der Makros wird nun nicht funktionieren, weil die Namen mit irgendwelchen Sonder spanischen Buchstaben (á, é, í, ó, ú, ñ) im Code haben gewechselt. Verstehst du es? Nein? Ugh, nun, ich tue mein Bestes, um das Problem zu erklären ... let's try with an image.

Sehen Sie, wie sogar der Name des Macro ist einfach falsch ?! Es ist einfach nicht cool :(

Wenn ich versuche, meine UserForm zu öffnen, bekomme ich die 400 Fehler. Wenn es geladen wird, sucht es nach einigen Werten in Tabellen in einem Arbeitsblatt, aber die Namen der Tabellenspalten in der Code nicht den tatsächlichen diejenigen auf dem Arbeitsblatt entsprechen: This is one of the many Excel Tables with column names that use the special characters. In this case, the name of the column in the code is "Observaci-n"... they just won't match.

ich möchte wissen, warum dies passiert ist, und was kann ich tun, um zu reparieren und zu verhindern, dass dies geschieht wieder (neben nicht mit dem eñe (n) und der ganze Rest der speziellen Zeichen).

Ich danke Ihnen allen im Voraus für die Hilfe mit meinem Frust.

¡Aguante, Stack !!

+0

es ist ein Durcheinander, stimme ich zu. Ich würde sagen, dass die Leute von nun an nicht mehr auf den VBA-Code zugreifen und ihn mit einem Passwort schützen sollten. Und vielleicht möchten Sie auch einen "doctor FIX" -Untersatz schreiben und ihn ausführen lassen, um Ihre relevanten Subs zu überprüfen und zu reparieren, bevor sie ausgeführt werden.wie für das Schreiben eines "Doctor FIX" Sub, müssen Sie VBE-Editor-Programmierung verwenden, für die Sie eine Menge Hilfe finden können [http://www.cpearson.com/excel/vbe.aspx] – user3598756

+0

ist dies Problem tritt auf der gleichen Maschine auf, die Sie programmiert haben? es scheint mir ein Fehler bei der Kodierung zu sein –

Antwort

1

Beste Lösung:

NIE Verwendung nicht US-ASCII-Zeichen in Namen von Subroutinen oder Variablen! Programmiersprachen wurden nie so gestaltet, dass sie länderspezifisch sind.

Sie können diese Nicht-US-ASCII-Zeichen in Kopfzeilen usw. verwenden, aber wenn Sie diese Namen auch in Ihrem Code kodieren, werden sie möglicherweise geändert. Sie sollten jedoch in der Lage sein, sie als Strings zu manipulieren.

Die US-ASCII-Zeichen sind 0..127. Alle höheren Zeichen erfordern Codepages, um sie zu übersetzen.

0

Wenn Sie diese Zeichen in Ihrem Code als Zeichenfolgen verwenden möchten, z. wie

dim s_my_string as string 
s_my_string = "mañana" 

eine bessere Art und Weise zu verwenden, um es zu einer Zelle so zu bezeichnen ist:

dim s_my_string as string 
s_my_string = Range("A1").Text 

Sie in der Zelle „A1“ Sie kann „mañana“ oder etwas Besonderes schreiben. Im Allgemeinen wird dies als eine gute Vorgehensweise in der VBA-Anwendungsentwicklung angesehen.

Edit: Sah deinen Fall, sollten Sie die Namen zu Standard Latein umschreiben, wenn Sie die Person zu pflegen und damit arbeiten sind.

Verwandte Themen