2016-06-22 11 views
-1

ここで私はこのCSVファイルをロードするコードを持っています。それはこのように表示さ :CSVからの列の合計値を取得

//profile, lenght, width, qty, color// 
r2,500,800,5,white 
r2,200,100,2,white 

私はこれでそれを解析:

Sub Main() 

    Dim CDLG As Object 
    Set CDLG = CreateObject("MSComDlg.CommonDialog") 
    With CDLG 
     .DialogTitle = "Choose file" 
     .Filter = "CSV Documents|*.csv" 
     .ShowOpen 
     m_strFileURI = .Filename 
     m_strFileName = .FileTitle 

    Dim cesta As String 
    cesta = Left(m_strFileURI, InStrRev(m_strFileURI, "\")) 
    End With 
    Set CDLG = Nothing 


    Dim FSO As New FileSystemObject 
'array of values in each line 
    Dim LineValues() As String 
'each new line read in from the text stream 
    Dim ReadLine As String 
    Dim ts As TextStream 
'open file 
    Set ts = FSO.OpenTextFile(m_strFileURI) 
'keep going till no more lines 
    Do Until ts.AtEndOfStream 
'read first line 
    ReadLine = ts.ReadLine 

    LineValues = Split(ReadLine, ",") 

Debug.Print LineValues(3) 


**'--> Need finaly generate filename as: Totalqty - lenght - width** 


Loop 
End Sub 

が、どのように私はからTOTAL QTYを得ることができます - LineValues(3) たファイル名を作成するために私はそれを使用することができますTotalqty - lenght - width ??

あなたは

+0

は、この実際にVBAですか?またはvb6?彼らは同じことではありません。それがvbaの場合は、 –

答えて

1

Loopこれを追加する前に(3)

の上部にサブこの

Dim TotalLineValues As Long 
TotalLineValues = 0 

を追加し、新たな変数と呼ばれるTotaLineValuesを追加し、各LineValuesでそれをインクリメント感謝します:

TotalLineValues = TotalLineValues + LineValues(3) 
Debug.Print TotalLineValues 

さらに、値によって各時間は

EDIT:ファイルを照会し、一度にQTYを合計し、それを通してあなたループする前に、SQLオブジェクトとしてそれを照会しようとする:

Public Sub GetDataFromCSV() 
    Const adOpenStatic = 3 
    Const adLockOptimistic = 3 
    Const adCmdText = &H1 
    Set objConnection = CreateObject("ADODB.Connection") 
    Set objRecordSet = CreateObject("ADODB.Recordset") 
    strPathtoTextFile = "C:\temp\" 
    strFile = "tesFile.csv" 
    objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathtoTextFile & ";Extended Properties='text;HDR=YES;FMT=Delimited'" 
    objRecordSet.Open "Select sum(QTY) as Quantity from " & strFile, objConnection, adOpenStatic, adLockOptimistic, adCmdText 

    If Not objRecordSet.EOF Then 
     Debug.Print objRecordSet.Fields.Item("Quantity") ' This will tell you the total quantity in the file is 7 

    End If 
End Sub 
+0

でそれを使用しているオフィスアプリケーションも含めて、その数を計算しますが、1ステップ= 5、2ステップ= 7ですが、最初のステップで合計= 7にする必要があります。 ...ありがとうございます。 – nordscan

+0

ファイルを1行ずつ読み込んでいますが、各行が読み込まれるごとに値を数えなければなりません。 – Dave

+0

はい、それはQTYと – nordscan

関連する問題