简单查找,替换和删除宏 - 当csv文件大于15MB时不起作用

时间:2018-02-22 14:37:01

标签: vba excel-vba excel

我遇到以下代码问题。

该宏应该取代","用" - "并应用两个过滤器。过滤" 0"的所有值并过滤所有值" Main"并使用组合" 0"删除所有行和#34; Main"。

它完美无缺,除非我的csv文件大于15 MB。在这种情况下,代码只是"循环"可以这么说。它不会抛出错误或任何东西,它只是停止过程,我可以手动继续。没有错误,没有崩溃,没有冻结,什么都没有,好像它甚至没有运行?

记录宏,这似乎是一个更容易的解决方案,也许是潜在的问题。

Sub Find_and_replace_and_filter_all()

' ALL_FIND_REPLACE_FILTER_DELTE Macro for all.csv

    Dim wkb As Excel.Workbook
    Dim wks As Excel.Worksheet

    Set wkb = Excel.Workbooks.Open("G:\Users\Documents\all.csv")
    Set wks = wkb.Worksheets("all")

    wks.Cells.Replace What:=",", Replacement:="-", LookAt:=xlPart, SearchOrder _
        :=xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:= _
        False
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$AC$5903").AutoFilter field:=6, Criteria1:="0"
    ActiveSheet.Range("$A$1:$AC$5903").AutoFilter field:=9, Criteria1:="Main"
    Rows("2:2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    Selection.AutoFilter

    wkb.Close saveChanges:=True

End Sub

0 个答案:

没有答案