陷入使用转置

时间:2016-07-19 01:06:11

标签: excel vba excel-vba macros

我试图将其他工作簿中的数据提取到主工作簿中。所有这些工作簿都保存在一个文件夹中。我想自动打开其他工作簿而不是手动打开。我需要提取的数据是非相邻单元格,我希望从每个源工作簿中提取的数据在主工作簿中以行显示(因为我在第1行中有一个头行,所以从第一个工作簿中提取数据后并粘贴在第2行,从第二个工作簿中提取的数据将列在第3行,依此类推)

然而,当我运行宏时,我陷入了Transpose。

以下是我的代码

Sub LoopThroughDirectory()
    Dim MyFile As String
    Dim wkbSource As Workbook
    Dim wkbTarget As Workbook
    Dim erow As Single
    Dim Filepath As String
    Dim copyRange As Range
    Dim cel As Range
    Dim pasteRange As Range

    Filepath = "C:\xxxxx\"
    MyFile = Dir(Filepath)

    Do While Len(MyFile) > 0
        If MyFile = "Import Info.xlsm" Then GoTo NextFile    
        Set wkbTarget = Workbooks("Import Info.xlsm")

        Set wkbSource = Workbooks.Open(Filepath & MyFile)   
        Set copyRange = wkbSource.Sheets("sheet1").Range("c3,f6,f9,f12,f15,f19,f21,f27,f30,f33,f37,f41")
        Set pasteRange = wkbTarget.Sheets("sheet1").Range("a1")

        For Each cel In copyRange
            cel.Copy
            ecolumn = wkbTarget.Sheets(1).Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1).Column
            wkbTarget.Worksheets("Sheet1").Paste Destination:=wkbTarget.Worksheets("Sheet1").Range(Cells(1, ecolumn).Address)
            pasteRange.Cells(1, ecolumn).PasteSpecial xlPasteValues

        Next
        Application.CutCopyMode = False

        wkbSource.Close

    NextFile:
        MyFile = Dir

    Loop

End Sub

到目前为止我做了什么:

  1. 我转换了从源工作簿中提取的数据,但它们没有像我预期的那样显示在主工作簿中。所有这些都在第1行
  2. 我在VBA上没有多少经验,我觉得我编写的代码用于复制非相邻单元格并在主工作簿中进行转置使得循环变得更加复杂。但我不知道我哪里出错或如何解决这个问题。
  3. 请帮帮我。非常感谢你!

1 个答案:

答案 0 :(得分:0)

您必须在循环之外设置目标范围并将其偏移到循环内部:

cUnmanagedInterpolator