1

スプレッドシートを行ごとに調べ、その行の重複セルをチェックし、すべての重複を削除し、すべてのセルをシャッフルして空白がないようにする便利な VB スクリプトを使用しています。

次のようになります。

Sub StripRowDupes()
  Do Until ActiveCell = ""
     Range(ActiveCell, ActiveCell.End(xlToRight)).Select
     For Each Cell In Selection
        If WorksheetFunction.CountIf(Selection, Cell) > 1 Then
           Cell.ClearContents
        Else
        End If
      Next Cell
      On Error Resume Next
      Selection.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
      ActiveCell.Range("A2").Select
   Loop
End Sub

ただし、48,051列のCSVファイルに対してのみ同じ操作を実行する必要があるため、16,000列の制限によりExcelにロードされません。

ファイルのコマンド ラインからスクリプトを実行できますか?

どうすればこれを行うことができますか?

4

1 に答える 1

1

一度に .csv のチャンクをロードして、各インポートの最後にプレフィックスまたはサフィックスを付けることができます。各チャンクで VBA コードを実行してから、一緒に追加します。

残念ながら、 Workbooks.OpenText メソッドは、特定の列ではなく特定の行から始まるテキストのインポートをサポートしているため、VBA コードを実行する前に、Excel の外部で .csv ファイルを管理可能なチャンクに分割する必要があります。

于 2013-08-30T19:43:45.207 に答える