我想使用VBA读取文本文件,提取相关数据并转换为Excel文件。这是我正在使用的代码类型:
Sub ReadText()
Dim myFile As String, textline As String
myFile = Application.GetOpenFilename()
Open myFile For Input As #1
LineNumber = 0
Do Until EOF(1)
LineNumber = LineNumber + 1
Line Input #1, textline
'do stuff to extract the info I want and transfer to Excel
Loop
Close #1
End Sub
我住在讲西班牙语的国家,所以我需要保留许多重音字符。问题是这些重音字符正在转换为其他字符。例如,应将INGLÉS读作INGLÉS
我已经看到有替换重音字符的解决方案,但我不想这样做,因为我想要对Excel中的信息做什么仍需要重音。
我在某处错过了格式选项吗?
答案 0 :(得分:3)
另一种方法是使用ADO。
Sub ReadUTFFile()
Dim objADO As ADODB.Stream
Dim varText As Variant
Set objADO = New ADODB.Stream
objADO.Charset = "UTF-8"
objADO.Open
objADO.LoadFromFile "C:\Users\pankaj.jaju\Desktop\utftest.txt"
varText = Split(objADO.ReadText, vbCr)
Range("A1").Resize(UBound(varText) - LBound(varText)).Value = Application.Transpose(varText)
End Sub
注意 - 别忘了引用Microsoft ActiveX DataObjects。
样本测试
答案 1 :(得分:0)
这是我用来保持/强制停止自动格式化的功能
Sub spcChr
Dim i As Long
Dim num As Integer
Dim x() As Byte
x = StrConv([A1], vbFromUnicode)
For i = 0 To UBound(x)
Select Case x(i)
Case 211: num = 79
Case 63: num = 83
Case Else: num = x(i)
End Select
[B1] = [B1] & Chr(num)
Next
End Sub
这里A1单元格包含带有特殊字符的名称。 B1用于处理。