小兔网

下面我们将看一下Excel VBA中的一个程序,该程序从文本文件读取数据该文件包含一些我们要导入Excel的地理坐标。

情况:

使用Excel VBA从文本文件读取数据

1.首先,下载文本文件并将其添加到“ C:\ test \”

在您的工作表上放置一个命令按钮,并添加以下代码行:

2.我们声明四个变量。类型为String的myFile,类型为String的文本,类型为String的文本行,类型为Integer的posLat和类型为Integer的posLong。

昏暗的 MYFILE 作为 字符串,文本作为 字符串,一个TextLine 作为 字符串,posLat 作为 整数,posLong 作为 整数

3.我们需要使用完整路径和文件名初始化变量myFile。

myFile =“ C:\ test \ geographical-coordinates.txt”

要么

使用Application对象的GetOpenFilename方法显示标准的“打开”对话框并选择文件(实际上没有打开文件)。

myFile = Application.GetOpenFilename()

注意:方括号之间的空白部分表示我们不给Excel VBA任何输入。将光标放在Visual Basic编辑器中的GetOpenFilename上,然后单击F1以获取有关参数的帮助。

4.添加以下代码行:

打开 myFile 作为 输入 #1

注意:此语句允许读取文件。在其余的代码中,我们可以将文件称为#1。

5.添加以下代码行:

难道 直到 EOF(1)
    线路 输入#1,一个TextLine
    文本=文本和一个TextLine
循环

注意:直到文件(EOF)末尾,Excel VBA都会从文件中读取一行并将其分配给文本行。我们使用&运算符将所有单行连接(连接)并将其存储在变量文本中。

6.关闭文件。

关闭#1

7.接下来,我们搜索变量文本中纬度和经度的位置。我们使用Instr函数

posLat = InStr(文本,“纬度”)
posLong = InStr(文本,“经度”)

8.我们使用这些位置和Mid函数从变量文本中提取坐标,并将坐标写入单元格A1和单元格A2。

Range(“ A1”)。Value = Mid(text,posLat + 10,5)
Range(“ A2”)。Value = Mid(text,posLong + 11,5)

9.测试程序。

结果:

从文本文件结果读取数据