2005-4-14 T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10
F0101 378 376.2 376.2 374.4 374.4 378 372.6 363.6 363.6 363.6 363.6
F0102 374.4 374.4 374.4 370.8 372.6 376.2 370.8 361.8 361.8 361.8 361.8
T1,T2为时间(一个小时)
F0101为标置名,读中间的数据.请贴出原码高分送!
F0101 378 376.2 376.2 374.4 374.4 378 372.6 363.6 363.6 363.6 363.6
F0102 374.4 374.4 374.4 370.8 372.6 376.2 370.8 361.8 361.8 361.8 361.8
T1,T2为时间(一个小时)
F0101为标置名,读中间的数据.请贴出原码高分送!
然后就是要确认字符之间是用什么进行分割
标置前5位是固定的,这就是行
T0,T1,T2..这就是列,固然可以把列当成参数T0就传递0,T1就传递1....
然后你就可以循环判断第几行,第几个参数,就可以提取出来了.
我给你部分代码!
'*************************************
'函数:SelectDouHao
'参数:DouHao 整型,ZiFu 字符串
'返回值:字符串
'说明:读取条码
'*************************************
Public Function SelectDouHao(DouHao As Integer, ZiFu As String) As String Dim i As Integer
Dim j As Integer
Dim x As Integer
Dim DouHao2 As Integer
Dim DouHao3 As Integer
Dim DouHao4 As Integer
Dim Dou As Integer
On Error GoTo Error
Dou = DouHao
'取第一组
If Dou = 1 Then
SelectDouHao = VBA.Trim(VBA.Mid(ZiFu, 1, 13))
Exit Function
End If
'取第二组
If Dou = 2 Then
For i = 15 To VBA.Len(ZiFu)
If VBA.Mid(ZiFu, i, 1) = "," Then
'得到第二个逗号的位置
SelectDouHao = VBA.Trim(VBA.Mid(ZiFu, 15, i - 15))
Exit Function
End If
Next i
End If
'取第三组
If Dou = 3 Then
For i = 15 To VBA.Len(ZiFu)
If VBA.Mid(ZiFu, i, 1) = "," Then
DouHao2 = i
Exit For
End If
Next i
DouHao2 = DouHao2 + 1
For j = DouHao2 To VBA.Len(ZiFu)
If VBA.Mid(ZiFu, j, 1) = "," Then
SelectDouHao = VBA.Trim(VBA.Mid(ZiFu, DouHao2, j - DouHao2))
Exit Function
End If
Next j
End If
'取第四组
If Dou = 4 Then
For i = 15 To VBA.Len(ZiFu)
If VBA.Mid(ZiFu, i, 1) = "," Then
DouHao2 = i
Exit For
End If
Next i
DouHao2 = DouHao2 + 1
For j = DouHao2 To VBA.Len(ZiFu)
If VBA.Mid(ZiFu, j, 1) = "," Then
DouHao3 = j
Exit For
End If
Next j
DouHao3 = DouHao3 + 1
For j = DouHao3 To VBA.Len(ZiFu) + 1
If VBA.Mid(ZiFu, j, 1) = "," Or VBA.Mid(ZiFu, j, 1) = "" Then
SelectDouHao = VBA.Trim(VBA.Mid(ZiFu, DouHao3, j - DouHao3))
Exit Function
End If
Next j
End If
' '取第五组
' If Dou = 5 Then
' For i = 15 To VBA.Len(ZiFu)
' If VBA.Mid(ZiFu, i, 1) = "," Then
' DouHao2 = i
' Exit For
' End If
' Next i
' DouHao2 = DouHao2 + 1
' For j = DouHao2 To VBA.Len(ZiFu)
' If VBA.Mid(ZiFu, j, 1) = "," Then
' DouHao3 = j
' Exit For
' End If
' Next j
' DouHao3 = DouHao3 + 1
' For j = DouHao3 To VBA.Len(ZiFu)
' If VBA.Mid(ZiFu, j, 1) = "," Then
' DouHao4 = j
' Exit For
' End If
' Next j
' DouHao4 = DouHao4 + 1
' For j = DouHao4 To VBA.Len(ZiFu) + 1
' If VBA.Mid(ZiFu, j, 1) = "," Or VBA.Mid(ZiFu, j, 1) = "" Then
' SelectDouHao = VBA.Mid(ZiFu, DouHao4, j - DouHao4)
' Exit Function
' End If
' Next j
' End If
Exit Sub
Error:
MsgBox Err.Description, vbExclamation + vbOKOnly, "信息!"
End Function
Private Sub OpenCSVFile() Dim CSVPath As String
Dim DataItem As String
Dim FNum As Integer
Dim EOFStat As Boolean, EOLStat As Boolean
Dim FName As String
FNum = FreeFile
FName = CSVPath & CSVFile
Open FName For Input Lock Write As #FNum
EOFStat = EOF(FNum) Do Until EOFStat
'Read data item from CSV file
EOFStat = EOF(FNum) 'End of CSV file
If EOFStat Then Exit Do
DataItem = GetCSVItem(FNum, EOLStat)
Loop End Sub'得到CSV文件中一个单元格的内容
Public Function GetCSVItem(Fn As Integer, EOL As Boolean) As Variant Dim ResultStr As String
Dim cc As String * 1
Dim ccbk As String * 1
Dim ParseStep As Integer
EOL = True
blnEnter = False
ResultStr = vbNullString
ParseStep = 1
Do Until EOF(Fn)
Select Case ParseStep
Case 1 'start read data
cc = Input$(1, #Fn)
If cc = """" Then
ParseStep = 2
cc = Input$(1, #Fn)
Else
ParseStep = 11
End If Case 2
If cc = """" Then
ParseStep = 3
Else
ResultStr = ResultStr & cc
End If
cc = Input$(1, #Fn) Case 3
If cc = """" Then
ResultStr = ResultStr & cc
ParseStep = 2
cc = Input$(1, #Fn)
Else
ParseStep = 11
End If
Case 11 'reading data
If cc = "," Then
EOL = False
Exit Do
Else
If cc = Chr$(13) Or cc = Chr$(10) Then
blnEnter = True
ParseStep = 21
ccbk = cc
Else
ResultStr = ResultStr & cc
If cc = """" Then
ParseStep = 12
End If
End If
cc = Input$(1, #Fn)
End If Case 12
If cc = """" Then
cc = Input$(1, #Fn)
End If
ParseStep = 11 Case 21 'the row data is readed for "Enter" in the end
If (cc <> Chr$(13) And cc <> Chr$(10)) Or ccbk = cc Then
Seek #Fn, Seek(Fn) - 1
End If
Exit Do End Select
Loop
GetCSVItem = ResultStr 'Reture result
End Function