vba - Excel宏: for loop file to file

标签 vba excel

我不懂 VBA,但我需要编写一个宏来优化我的工作。 我正在寻找我的代码来循环遍历文件并将每个文件中的同一列复制/粘贴到 Excel 工作簿(逐列)。这是我到目前为止所拥有的(请注意,我在文件名中添加了“i”):

Sub NewMacro()

For i = 0 To 99

    Workbooks.OpenText Filename:= _
        "C:\User\Folder\file_up000i.txt", _
        Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
    Range("A3").Select
    Selection.Copy
    With ActiveWindow
        .Top = 6.25
        .Left = 53.5
    End With
    Windows("Book1").Activate
    With ActiveWindow
        .Top = 40.75
        .Left = 13
    End With
    Range("B1").Select
    ActiveSheet.Paste
    Windows("file_up000i.txt").Activate
    Range("C26").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Book1").Activate
    Range("B2").Select
    ActiveSheet.Paste
    Windows("file_up000i.txt").Activate
    With ActiveWindow
        .Top = 4
        .Left = -75.5
    End With
    ActiveWindow.Close

    Next i

End Sub

显然这不起作用,但我不知道还能怎么做。非常感谢您的帮助!

最佳答案

假设您的文件名为 file_up0000.txtfile_up0001.txt ... file_up0099.txt 这是宏的重构

Sub NewMacro()
    Dim i As Long
    Dim shTxt As Worksheet
    Dim shDest As Worksheet
    Dim TxtName As String

    Set shDest = ActiveSheet
    For i = 0 To 99
        TxtName = "file_up" & Format(i, "0000")
        Workbooks.OpenText Filename:= _
            "C:\User\Folder\" & TxtName & ".txt", _
            Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True

        Set shTxt = Workbooks(TxtName & ".txt").Worksheets(TxtName)

        shTxt.[A3].Copy shDest.[B1]
        shTxt.Range(shTxt.[C26], shTxt.Range("C26").End(xlDown)).Copy shDest.[B2]
        shTxt.Parent.Close False
    Next i

End Sub

关于vba - Excel宏: for loop file to file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933985/

相关文章:

Excel 根据名称查找工作表

excel - 需要将用户选择的工作表名称分配给变量

VBA在多个工作表上设置图表不可见Excel

java - java中从Excel中读取指数数

vba - Range.Calculate 不更新单元格中的值

arrays - 检查字符串是否缩写并复制完整字符串。 (Vba)

json - 正确解析 JSON 响应文本

Excel VBA - 如何在 For 循环中以 1 到 1 的级别比较两个范围?

excel - VBA Excel - 将 Enter 键替换为 Alt Enter

excel - excel中动态改变下拉菜单