这是我在这里的问题,所以请耐心等待......
当我试图解释标题时,我在Excel工作簿中的VBA代码搞得一团糟。工作簿被很多人共享,所以他们可以输入一些数据(它更复杂,但是让我们把它留在那里),我收到的一些文件不起作用:我得到400错误,没有代码似乎工作。
假设我使用命名范围来识别敏感数据的分配位置,但现在大多数宏都不起作用,因为带有任何特殊西班牙字母的名称(á,é,í,ó) ,ú,ñ)在代码中已切换。你明白了吗?没有?呃,好吧,我正在尽力解释这个问题...... let's try with an image.
看看宏的名称是多么错误?!这并不酷:(
当我尝试打开UserForm时,出现400错误。加载时,它会在工作表的表中查找某些值,但代码中表的列名与工作表中的实际列不匹配: 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.
我想知道为什么会发生这种情况,我该怎么做才能解决并防止再次发生这种情况(除了不使用eñe(ñ)和所有其余的特殊字符)
我提前感谢你们帮助我沮丧。
¡Aguante,Stack !!
答案 0 :(得分:1)
最佳解决方案:
从不在子程序或变量的名称中使用非US-ASCII字符!编程语言从未被认为是区域敏感的。
您可以在工作表中的标题名称等中使用这些非US-ASCII字符,但如果您在代码中对这些名称进行编码,则可能会更改它们。您应该能够将它们作为字符串进行操作。
US-ASCII字符为0..127。所有较高的字符都需要代码页来翻译它们。
答案 1 :(得分:0)
如果您想在代码中将此字符用作字符串,例如喜欢
dim s_my_string as string
s_my_string = "mañana"
使用它的更好方法是将它引用到这样的单元格:
dim s_my_string as string
s_my_string = Range("A1").Text
在单元格“A1”中,您可以写“mañana”或任何特殊内容。通常,这被认为是VBA应用程序开发中的一个好习惯。
编辑:看了你的情况,如果你是维护和使用它的人,你应该将名字重写为标准拉丁语。