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