使用vba将数据粘贴到下一个空列中

时间:2018-06-06 20:00:20

标签: excel-vba vba excel

我是VBA的新手,所以这是我在网上找到并合并的一些代码。 现在有3个部分(最后一部分对我的问题不重要)。第一部分“编译”循环遍历文件夹中的所有文件,并调用第二部分“copydata”,该部分使用标题“direction”或“instruction”复制列下的数据,并将其粘贴到新的“Summary”表中。现在它将新数据粘贴到第一列,但每次打开新文件时都会覆盖新数据。如何更新我的代码,以便每次打开文件时,新数据都会被放入下一个空列。

1 个答案:

答案 0 :(得分:0)

未经过测试

Sub CopyData(OldWB As Worksheet, NewWB As Worksheet)
    Dim title As Range
    Dim lColumn As Long

    With OldWB.Rows(1)
        Set title = .Find("direction")
        If title Is Nothing Then Set title = .Find("instruction")
    End With

    'Get last used column, and add 1 (for next one)
    lColumn = NewWB.Cells(1, Columns.Count).End(xlToLeft).Column + 1

    If Not title Is Nothing Then
        title.EntireColumn.Copy
        NewWB.Cells(1, lColumn).PasteSpecial (xlPasteValues)
        Application.CutCopyMode = xlCopy
        NewWB.Columns(lColumn).RemoveDuplicates Columns:=1, Header:=xlNo
        Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.Delete Shift:=xlUp
        NewWB.Columns.AutoFit
    Else
        MsgBox "Error"
    End If
End Sub