-1

Excel 2013 用の VBA マクロの開発についてサポートが必要です。SQL サーバーからデータを取得するためにクエリ マクロを実行した後に作成された大きなデータ ファイルを使用しています。クエリ ファイルによって生成されたデータ ファイルには、常に列 A に日付: タイム スタンプがあり、他の列 (ユーザーが事前に定義したタグ) に結果を処理します。レポートを分析して生成します。生データ ファイルには、一部の行に "0" 値が含まれていることがあります。「0」値を削除して上記の値をコピーするマクロが実行されます。

第1シナリオ

1 つ目の問題は、日付のデータが利用できない場合です。時刻のデータ シートでは、セルに #N/A が表示されます。場合によっては、完全な行が #N/A と表示され、列 A にタイム スタンプが表示されます。マクロを実行して、シートから #N/A を削除します。次に、シートを手動で操作して、タイム スタンプ以外の値のない行を削除する必要があります。マクロを使用して、日付: タイム スタンプのある列 A を除いて空の行を削除する必要があります。行全体を削除する必要があります。

シナリオ2

#N/A がセルの上、下、左、右の値を持つ列セルにある場合があります。この #N/A 行は削除してはなりませんが、他のアプリケーション データの計算のために上の値にする必要があります。

データ シートの手動操作は非常に時間がかかります。ファイルが修正された後、「csv」として保存され、他のアプリケーションにインポートされます。

多くの条件付きマクロを試しましたが、うまくいきませんでした。

助けてくれる人はいますか

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは部分的な解決策です。次のマクロは、列 A に唯一の値があるすべての行を削除します。

Sub RowKiller()
    Dim N As Long, NN As Long
    Dim r As Range
    NN = Cells(Rows.Count, "A").End(xlUp).Row
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    For N = NN To 1 Step -1
        Set r = Cells(N, "A")
        If wf.CountA(r) = 1 And wf.CountA(r.EntireRow) = 1 Then
            r.EntireRow.Delete
        End If
    Next N
End Sub
于 2013-09-05T11:21:48.503 に答える