【问题标题】:Passing other language data into text file through excel VBA通过excel VBA将其他语言数据传递到文本文件中
【发布时间】:2015-10-29 07:24:55
【问题描述】:

问题 A

我有其他语言数据,我试图在调试窗口中打印它,但它不包括特殊字符

例如:

  1. “Aragac̣otn”被视为“Aragac?otn”。
  2. “Geġark'unik'”为“Gegark'unik'”

简而言之,什么是合适的数据类型?我尝试使用字符串/变体但没有成功。

问题 B

我的最终目标是将其传递到 txt 文件中。当我试图传递值“Aragac?otn”时,它会引发错误。 (无效的过程调用或参数)

我正在为此使用 FileSystemObject。

这是问题 A 的图片

【问题讨论】:

  • VBE 的即时窗口无法显示这些字符。这并不意味着您错误地收集了它们。将提示放入 MsgBox 也是如此。如果您打算根据结果构建 TXT,则可能必须使用 UTF-8 编码。字符串类型 vars 应该足够了。尝试将它们放回不同位置的工作表中。
  • @Jeeped 实际上我想用它构建 .sql 文件。不完全是.txt。我不确定如何制作 UTF-8。你能帮帮我吗
  • 您可以构建一个 XLSX 用于导入或直接使用写入 SQL。
  • @Jeeped 我正在使用文件系统对象将它写入 SQL。如问题 B 中所述,它会引发错误
  • 短语“将其写入 SQL” 对我来说毫无意义。我什至不知道这是 MS SQL、mySQL 还是其他一些衍生产品。也许this 会有所帮助。

标签: vba excel text


【解决方案1】:

试试下面的代码。它将从 excel 中获取值并将其粘贴到 txt 文件中。

Sub try()
Dim A1 As Variant
Dim A2 As Variant
Dim sFileName As String
Dim fsT As Object

A1 = Worksheets("Sheet2").Range("A1").Value
A2 = Worksheets("Sheet2").Range("A2").Value


sFileName = "C:\Documents and Settings\vnpasump\Desktop\test1.txt"


Set fsT = CreateObject("ADODB.Stream")
fsT.Type = 2 'Specify stream type - we want To save text/string data.
fsT.Charset = "utf-8" 'Specify charset For the source text data.
fsT.Open 'Open the stream And write binary data To the object

fsT.WriteText A1
fsT.WriteText A2

fsT.SaveToFile sFileName, 2 'S


End Sub

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    相关资源
    最近更新 更多