首页 > 解决方案 > 为要导出到 txt 的不同列插入另一个过滤器命令

问题描述

我有以下宏,我希望在其中添加一个新条件,以从单个列创建一些 txt 文件。如果 G 列是 38,对于 E 列中的每个唯一值,基本上将 F 列中的每一行导出到一个新的 txt(名称作为 E 列中的值)。希望有人可以提供帮助

     Sub ExceltoTXT()
  Dim sh As Worksheet, c As range, ky As Variant, wb As Workbook, wPath As String, lr As Long
  Application.SheetsInNewWorkbook = 1
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Set sh = ActiveSheet
  wPath = ThisWorkbook.Path & "\"
  If sh.AutoFilterMode Then sh.AutoFilterMode = False
  lr = sh.range("A" & Rows.Count).End(xlUp).Row
  With CreateObject("scripting.dictionary")
    For Each c In sh.range("E2:E" & lr)
      .Item(c.Value) = Empty
    Next
   
    For Each ky In .Keys
      sh.range("E1").AutoFilter 1, ky
      Set wb = Workbooks.Add
      sh.AutoFilter.range.range("F2:F" & lr).Copy
      range("A1").PasteSpecial xlPasteValues
      wb.SaveAs wPath & ky & ".txt", FileFormat:=xlTextMSDOS
      wb.Close False
    Next
  End With
  sh.ShowAllData
End Sub

我需要插入这一行

sh.range("A1").AutoFilter Field:=7, Criteria1:="38"

标签: excelvba

解决方案


推荐阅读