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件のファイルがあり、ビジネスを削除するには頼むかもしれないか、バック追加します任意の列。また、新しいファイルは、私は配列としてのシートのために、あなたに関連する列を与える関数呼び出しでSwitchステートメントを交換することをお勧め((
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のワークシートのためのあなたのテーブルの文字列を持っている列を除くすべての列を読み取るアルゴリズムでColumnNumbersを置き換えることです、右ですか? – JensS