Excel 파일을 txt로 변환했습니다. 일부 파일에서는 일부 열을 건너 뜁니다. 데이터베이스에 의해 제어됩니다 :Excel을 제외한 모든 열 가져 오기
file | remove_column
=======+===============
file1 | CASE NOTE
-------+---------------
file2 | Description
-------+---------------
file3 | Item | Address
Remove_Column에는 헤더 (1 행)가 있습니다. 여러 열을 건너 뛸 경우 '|'로 구분됩니다.
변환 된 txt 파일과 원래의 Excel 파일이 일치하는지 비교해야합니다. DB 테이블에 표시된 컬럼을 제외한 모든 컬럼을 읽으려면 어떻게해야합니까?
UFT 12.5를 사용하고 있습니다. Excel.Application 또는 ADO를 통해 Excel을 읽습니다. Thnx는)
는 UPD : 코드 내가 사용
내가 하드 코딩 된 열이 있습니다
Select Case OrigFileName 'file names come from database
Case "Fees mm-yy.xls"
ColumnNames = Split("1,2,3,4,5,6,7,8,9,10,11,12,13", ",")
Case "Exp mm-yy.xls"
ColumnNames = Split("1,2,3,4,5,6,7,8,9,12,13,14,15,16,19,20", ",")
End Select
을하지만, 거기에 50 개 파일이 있으며, 사업이 제거하거나 다시 추가 요청할 수 있습니다 모든 열; 또한, 새로운 파일이오고있다 ... (((내가 배열로 시트 당신에게 관련 컬럼을 제공하는 함수 호출로 스위치 문을 대체하는 제안
Dim fsox : Set fsox = CreateObject("Scripting.FileSystemObject")
Dim TargFileRead : Set TargFileRead = fsox.OpenTextFile(targetFile)
Dim OrgExcel : Set OrgExcel = CreateObject("Excel.Application")
OrgExcel.Workbooks.Open(originalfile)
Set vSheet = OrgExcel.WorkSheets(TabUse) 'excel sheet name, comes from database
print vSheet.UsedRange.Rows.Count
For rc = 1 To vSheet.UsedRange.Rows.Count
For coc = 0 To UBound(ColumnNames) 'column names hard-coded
cc = cInt(ColumnNames(coc))
vtext = vSheet.cells(rc,cc)
If NOT(vtext=ChrW(9)) Then
If vstring="" Then
vstring=vtext
Else
vstring = vstring&vbTab&vtext
End If
End If
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= mid(TargFileText,1,len(TargFileText)-1)
Else
Exit Do
End If
Loop
TargFileStr = Trim(TargFileText)
If trim(vstring) = trim(TargFileStr) Then
' print "match"
Else
print "-=Not Match=-"&VBNewLine&"txt:::"&trim(TargFileStr)&VBNewLine&"xls:::"&trim(vstring)
End If
End If
Next
모든 열을 읽는 코드가 있지만 특정 열을 건너 뛰는 방법을 모르십니까? 그렇다면 코드를 제공해 주시겠습니까? – JensS
아, 예, 잊어 버렸습니다 ... 이제 질문이 업데이트됩니다. – Salek
그냥 명확히하기 위해 : 행 1의 워크 시트에 대한 테이블에 String이있는 문자열을 제외한 모든 열을 읽는 알고리즘으로 ColumnNumbers를 바꾸는 것이 목표입니까? – JensS