如何利用VBA实现Excel 报表从文本文件读取指定的信息?
程序修改之后通过,但是读不出数据,程序如下:
Sub sw()
Dim FILE_PATH As String, TEMP As String, I As Long, N As Long, ZHANMA As String, SHIJIAN As String, S() As String, Z As String, a As String
FILE_PATH = "D:\RWIS\tele\NP" & Format(Date, "YYMMDD") & ".tel"
Open FILE_PATH For Input As #1 '打开文件
S() = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1 '一定要在报文处理完成后关闭文件,切记
For I = 0 To UBound(S) '按行输入,每行作为一个字符串赋值给变量a
ZHANMA = Mid(S(I), 18, 8) '站号变量
SHIJIAN = Mid(S(I), 27, 8) '时间变量
Z = Mid(S(I), 18, 8)
If Mid(SHIJIAN, 5, 2) = "08" Then '只读取8时的数据信息,其他时间不读取
'以下是根据判别站号,指定活动单元格,并将函数的值写入
If ZHANMA = "61913200" Then [B6] = cjsw(a) '**站的站码,用户可以根据各自的需要设定不同的站码
If ZHANMA = "61901300" Then [B7] = cjsw(a)
If ZHANMA = "61512000" Then [B8] = cjsw(a)
'在活动单元格中写入函数cjsw(a)的值,cjsw(a)为求取字符串变量a中的水位值的自定义函数,这里的a 是一行从报文文件中读取的一份完整的报文字符串。
End If
Exit For
Next
[B6].Activate
MsgBox ("水位自动翻译完成!!!!")
End Sub
Function cjsw(Z As String) '求河道站水位的函数
For I = 36 To Len(Z)
If Mid(Z, I, 2) = "Z " Then
cjsw = Mid(Z, I + 2, 5)
End If
Next I
End Function
我要的文本文件内容如下:
SY5773 H 61913200 04120800 Z 40.54 ZS 5 Q 20.5 QS 1 QX 25.0 QM 48.6 NN GOITM2007/04/12_08:12:26 04 GOOTM2007/04/12_08:14:16
就是只要Z后面的40.54到B6,该怎么改呢?急
Sub sw()
Dim FILE_PATH As String, TEMP As String, I As Long, N As Long, ZHANMA As String, SHIJIAN As String, S() As String, Z As String, a As String
FILE_PATH = "D:\RWIS\tele\NP" & Format(Date, "YYMMDD") & ".tel"
Open FILE_PATH For Input As #1 '打开文件
S() = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1 '一定要在报文处理完成后关闭文件,切记
For I = 0 To UBound(S) '按行输入,每行作为一个字符串赋值给变量a
ZHANMA = Mid(S(I), 18, 8) '站号变量
SHIJIAN = Mid(S(I), 27, 8) '时间变量
Z = Mid(S(I), 18, 8)
If Mid(SHIJIAN, 5, 2) = "08" Then '只读取8时的数据信息,其他时间不读取
'以下是根据判别站号,指定活动单元格,并将函数的值写入
If ZHANMA = "61913200" Then [B6] = cjsw(a) '**站的站码,用户可以根据各自的需要设定不同的站码
If ZHANMA = "61901300" Then [B7] = cjsw(a)
If ZHANMA = "61512000" Then [B8] = cjsw(a)
'在活动单元格中写入函数cjsw(a)的值,cjsw(a)为求取字符串变量a中的水位值的自定义函数,这里的a 是一行从报文文件中读取的一份完整的报文字符串。
End If
Exit For
Next
[B6].Activate
MsgBox ("水位自动翻译完成!!!!")
End Sub
Function cjsw(Z As String) '求河道站水位的函数
For I = 36 To Len(Z)
If Mid(Z, I, 2) = "Z " Then
cjsw = Mid(Z, I + 2, 5)
End If
Next I
End Function
我要的文本文件内容如下:
SY5773 H 61913200 04120800 Z 40.54 ZS 5 Q 20.5 QS 1 QX 25.0 QM 48.6 NN GOITM2007/04/12_08:12:26 04 GOOTM2007/04/12_08:14:16
就是只要Z后面的40.54到B6,该怎么改呢?急
...全文
相关推荐
EXCEL VBA 读取文本文件宏
在Excel VBA中,宏是一种自动化工具,可以执行一系列任务,比如读取、处理和分析数据。本例中的“EXCEL VBA 读取文本文件宏”是一个专门用于读取文本文件并将其内容导入到Excel工作表的宏。
用Excel VBA方法实现报表自动生成.pdf
下面将详细介绍在Excel VBA中实现报表自动生成,并将报表转换为PDF文件的步骤和相关知识点。首先,VBA代码编写在“VBAProject(kbs1.xls)”中,这是VBA宏项目的名称。
VBA操作网页读取数据自动填入EXCEL表中
### VBA操作网页读取数据自动填入EXCEL表中的实现方法在现代办公环境中,自动化工具能够极大地提高工作效率并减少重复性劳动。
EXCEL vba 批量复制粘贴至指定位置脚本文件
此"EXCEL VBA 批量复制粘贴至指定位置脚本文件"项目的核心在于利用VBA的编程能力,实现对Excel工作表数据的批量处理。以下是一些关键知识点:1.
VBA读取指定文件内容
本知识点主要讲解如何利用VBA来读取指定路径下的文件内容,以及如何理解并应用相关的代码示例。首先,我们需要了解VBA中的基本文件操作函数。


Office开发/ VBA
