从使用Excel VBA一个文本文件中读取数据
下面我们就来看看在Excel VBA程序从一个文本文件中读取数据。此文件包含我们需要一些地理坐标导入到Excel中。
现状:
1.首先下载文本文件,并将其添加到“C:\测试\”
将工作表上的一个命令按钮并添加以下代码行:
2.我们声明四个变量。 String类型,String类型,类型为String,Integer类型的posLat的一个TextLine文字的MYFILE,以及整数类型posLong。
Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
3.我们需要的完整路径和文件名来初始化变量MYFILE。
myFile = "C:\test\geographical-coordinates.txt"
或使用应用程序对象的GetOpenFilename方法来显示标准打开对话框并选择文件(没有实际打开文件)。
myFile = Application.GetOpenFilename()
注:括号之间的空白部分是指我们给Excel VBA中毫无作为输入。请将您的GetOpenFilename光标Visual Basic编辑器,然后点击F1上的参数帮助。
4.添加以下代码行:
Open myFile For Input As #1
注意:此语句可以读取该文件。我们可以在我们的代码的其余部分中引用该文件为#1。
5.添加以下代码行:
Do Until EOF(1) Line Input #1, textline text = text & textline Loop
注意:直到文件(EOF)的端部时,Excel VBA从该文件读取,并将其分配到一个TextLine单行。我们使用&运算符来连接(加入)的所有单一线路,并将其存储在变量文本。
6.关闭该文件。
Close #1
7.接下来,我们搜索的字的位置经度和纬度的可变文本。我们使用Instr函数。
posLat = InStr(text, "latitude") posLong = InStr(text, "longitude")
8.我们使用这些位置和Mid函数来提取可变文本的坐标,并写入坐标的单元格A1和A2单元格。
Range("A1").Value = Mid(text, posLat + 10, 5) Range("A2").Value = Mid(text, posLong + 11, 5)
9.测试程序。
结果: