在超出行/列限制的文件上从命令行运行宏

时间:2013-08-30 18:46:56

标签: excel vba csv excel-vba

我一直在使用一个有用的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中。

我可以从文件的命令行运行脚本吗?

我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以一次加载.csv的块,在每次导入的末尾添加前缀或后缀。在每个块上运行VBA代码,然后重新加回。

不幸的是,Workbooks.OpenText方法支持从特定行开始导入文本,而不是特定列,因此在运行VBA代码之前,您需要将.csv文件拆分为excel之外的可管理块。