該應用程序將Excel文件轉換爲txt。我必須驗證每一行匹配。下面是驗證的功能,但問題是它有時會從txt文件或excel文件返回空字符串,而這兩個文件在這些行/行中都有文本。QTP:函數從excel /文本文件返回空字符串
我得到的文件和文件夾名稱,以及什麼Excel工作表從數據庫
Function excelcomparison (ByRef ObjFolder, ByRef OrgFolder, ByRef originalfile, ByRef targetFile, ByRef TabUse)
print originalfile&":::"&TabUse&" -=VS=- "&targetFile
Dim fsox : Set fsox = CreateObject("Scripting.FileSystemObject")
Dim TargFileRead : Set TargFileRead = fsox.OpenTextFile(targetFile)
Dim OrgExcel : Set OrgExcel = CreateObject("Excel.Application")
'Application.DisplayAlerts = False
OrgExcel.Workbooks.Open(originalfile)
Set vSheet = OrgExcel.ActiveWorkbook.WorkSheets(TabUse)
For rc = 1 To vSheet.UsedRange.Rows.Count
For cc = 1 To vSheet.UsedRange.Columns.Count
vtext = (vSheet.cells(rc,cc))
If vstring="" Then
vstring=vtext
Else
vstring = vstring&vbTab&vtext
End If
Next
使用(如田臥勇太)「裁剪」任何開頭和結尾的標籤:
Do
If Left(vstring , 1)=ChrW(9) Then
vstring = MID(vstring, 2)
Else
Exit Do
End If
Loop
Do
If RIGHT(vstring, 1)=ChrW(9) Then
vstring= REPLACE(RIGHT(vstring, 1),ChrW(9), ChrW(32))
vstring=Trim(vstring)
Else
Exit Do
End If
Loop
vstring = Trim(vstring)
有些細胞在Excel中統一併具有兩排或更多排的高度。因此,跳過這些出類拔萃行和TXT線:
If len(vstring)>0 Then
TargFileText = TargFileRead.ReadLine
Do
If Left(TargFileText, 1)=ChrW(9) Then
TargFileText = MID(TargFileText, 2)
Else
Exit Do
End If
Loop
Do
If RIGHT(TargFileText, 1)=ChrW(9) Then
TargFileText = REPLACE(RIGHT(TargFileText, 1),ChrW(9), ChrW(32))
TargFileText=Trim(TargFileText)
Else
Exit Do
End If
Loop
TargFileStr = Trim(TargFileText)
If trim(vstring) = trim(TargFileStr) Then
' print "match"
Else
print "Not Match"
print "+"&trim(TargFileStr)
print "*"&trim(vstring)
End If
Else
print "Lenth=0"
End If
vstring = ""
vtext = ""
TargFileStr=""
Next
OrgExcel.ActiveWorkbook.Close
TargFileRead.Close
fsox = Nothing
TargFileRead = Nothing
vSheet = Nothing
OrgExcel = Nothing
End Function
問題1:它不讀一些文本或Excel文件,隨機(返回從Excel /文本文件中的空字符串)
問題2 :它不關閉打開的Excel,它們佔用大量內存(最多需要驗證的50個文件)
問題:需要修正哪些問題?
謝謝,它的工作!我絕對沒有考慮使用len(vstring)-1)) 我只在Excel字符串不爲空時閱讀文本的原因是,如果excel行爲空,軟件在txt文件中沒有空行。一切都很好,thnx) – Salek
很高興工作:) – Gurman