1

VBA を使用して、OLE オートメーションでデータベース フロントエンドを制御しています。データベース クエリからの出力は表形式で表示され、アプリケーションの OLE メソッドを使用して個々のセルを読み取ることができます。私の目標は、この出力を CSV に変換するプロセスを自動化することです。私のアプローチは、VBA の関数を使用して各セルをループし、CSV に出力することWRITEでしたが、この方法では各行に余分な不要なコンマが残ります。この余分なコンマを削除するか、最初からコンマなしで行を書くのを手伝ってください. お時間をいただきありがとうございます。

最初のループは列ヘッダーを書き込み、2 番目のループはテーブルのデータを書き込みます。どちらのループも、最後の不要なコンマを生成します。

'4. Write headers and table content to CSV File
     Open pathOutput For Output As #1
         For h = 1 To results.columnCount
             Write #1, Cells(1, h);
         Next h
         Write #1,

         For i = 1 To results.rowCount
             For j = 1 To (results.columncount)
                 Write #1, results.cell(i, j);
             Next j
             Write #1,
         Next i

     Close #1
4

2 に答える 2

3

これで問題は解決するはずです:

'4. Write headers and table content to CSV File
    Open pathOutput For Output As #1
        For h = 1 To Results.columncount
            'Add a comma unless it's the last column
            If h <> Results.columncount Then
                Write #1, Cells(1, h);
            Else
                Write #1, Cells(1, h)
            End If
        Next h
        Write #1,

        For i = 1 To Results.RowCount
            For j = 1 To (Results.columncount)
                'Add a comma unless it's the last column
                If j <> Results.columncount Then
                    Write #1, Cells(1, j);
                Else
                    Write #1, Cells(1, j)
                End If
            Next j
            Write #1,
        Next i

    Close #1

これに関するドキュメントを見つけることができませんでしたが、ここにあるようなセミコロン

Write #1, Cells(1, j);デフォルトのCrlf (関連する質問)Writeの代わりにコンマで行を終了させます。

于 2013-01-23T20:11:12.890 に答える
1

Write #1,最後の発言が犯人かもしれないと思います。それらを削除するとどうなりますか?

于 2013-01-23T18:17:56.307 に答える