Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Access VBA代码编辑器字符编码和复制/粘贴_Vba_Ms Access - Fatal编程技术网

MS Access VBA代码编辑器字符编码和复制/粘贴

MS Access VBA代码编辑器字符编码和复制/粘贴,vba,ms-access,Vba,Ms Access,Access的VBA编辑器中实际使用的编码是什么?我一直在寻找一个具体的答案很长一段时间,但没有运气 我以为是UTF-8,但我不是很确定 我的主要问题是,在VBA中编写查询时,有时需要在Access的查询编辑器中对其进行测试。然而,当复制粘贴时,我失去了我的本地字符(在我的例子中是希腊语),因为它们变成了胡言乱语 我曾尝试在文本编辑器中粘贴并将其保存为不同的编码,但我无法恢复原始字符 提前谢谢 编辑 让我进一步解释一下: 如您所见,我可以在VBA编辑器中正常书写希腊字符: 但是,复制Acces

Access的VBA编辑器中实际使用的编码是什么?我一直在寻找一个具体的答案很长一段时间,但没有运气

我以为是UTF-8,但我不是很确定

我的主要问题是,在VBA中编写查询时,有时需要在Access的查询编辑器中对其进行测试。然而,当复制粘贴时,我失去了我的本地字符(在我的例子中是希腊语),因为它们变成了胡言乱语

我曾尝试在文本编辑器中粘贴并将其保存为不同的编码,但我无法恢复原始字符

提前谢谢

编辑

让我进一步解释一下:

如您所见,我可以在VBA编辑器中正常书写希腊字符:

但是,复制Access“查询编辑器”中的第一行时,我会得到以下结果:

简单的文本编辑器也是如此:

因此,我倾向于认为问题在于剪贴板内部,因为希腊字符使用了编码。我猜它们不是Unicode,因为我确实必须在非Unicode字符的系统区域设置中进行更改。那么这些字符是如何保存/复制的呢?用什么编码

回答

实际上,这个问题是通过在复制实际测试字符串时将键盘输入语言切换为希腊语(EL)来解决的

然而,我仍然不确定为什么会发生这种情况。如果有人能对此提供一些见解,我很乐意听到

再次感谢您

关于这方面的详细信息:


看起来需要确保操作系统设置正确,并且VBA编辑器中的字体选择正确。

VBA编辑器不支持Unicode字符输入或显示。相反,它使用称为“代码页”的旧Windows技术来支持非ASCII字符

因此,VBA编辑器中的字符编码与“区域和语言选项”控制面板中指定的Windows系统区域设置使用的代码页相对应。例如,我的系统语言环境设置为“希腊语(希腊)”

我可以在VBA代码中输入希腊字符

但是,如果我将Windows系统区域设置切换回“英语(美国)”

并重新打开我的VBA项目,希腊字符已更改为新代码页中的相应字符

如果“控制面板”->“区域和语言选项”->“系统区域设置”设置正确,但有时仍会出现此问题,请注意,在复制粘贴时,必须将键盘布局切换为非英语

这不仅适用于VBA,而且适用于所有不支持unicode的应用程序


信誉归于@parakmiakos

我对西里尔文字符也有类似的问题。正确设置系统区域设置后,部分问题得到解决

但是,当VBA编辑器必须从内部解释西里尔文字时,它仍然无法识别西里尔文字

例如,它不能显示命令中的字符:

Msgbox "Здравей"
但是,如果图纸名称使用西里尔字母,它会很好地执行:

Msgbox Activesheet.Name

最后,当我换成32位版本的MS Office时,这些问题终于解决了。

谢谢,但这不是我面临的问题。我已经对系统区域设置进行了此更改。请看我上面编辑的问题。我认为这超出了字体选择的范围。如果这对您有用,我将使用Courier New(希腊文)。见我上面编辑的问题。感谢这篇文章对剪贴板上的Unicode问题有一些见解:Alan。。。你打在我头上。。。我的编码问题的解决方案是剪贴板。解决方案是从Excel->Notepad++->VBA进行复制,它成功了。Amit,如果我想以编程方式进行复制,该怎么办。我肯定有办法!