Excel 2010 VBA复制范围A:Z和粘贴A2:Z

时间:2015-11-11 23:44:07

标签: excel vba excel-vba csv

我尝试过研究,但对我想要达到的目标没有运气。我有两个不同的档案我正在合作; file1.csv(sheet1)和workbook1(sheet2)

file1.csv(sheet1)包含A列数据:EW,1000多行,并定期更新新行

这里的最终目标是自动复制file1.csv(sheet1)的全部内容,并将工作簿1(sheet2)中的数据从sheet2上的A2开始粘贴到workbook1(sheet2),因为我需要A1在sheet2上保持空白

我还应该注意,我无法提供实际文件,因为它们是保密的,我可以在必要时制作示例文件。

这是我在workbook1中到目前为止的代码,但在复制到/从不同范围复制时它不起作用。如果我将其更改为从A:EW复制到A:EW 但是我需要从Sheet1上的A:EW复制到A2:EW on sheet2。有没有人有任何建议?

Sub Macro1()
Dim ws As WorkSheet
For Each ws in activeworkbook.sheets 
 ws.Range("Sort").Sort Key1:=ws.Range("q66"), Order1:=xlAscending, Key2:=ws.Range("u66") _
    , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom
Next WS
End Sub

Sub Delete_Name_Date()
   Dim cell As Range
For Each ws in activeworkbook.sheets 
    For Each cell In ws.Range("R66:R306")
      With cell
        .EntireRow.Hidden = _
            (.Value = "Empty")
       End With
    Next
next ws
End Sub

2 个答案:

答案 0 :(得分:1)

Range.CurrentRegion property可以快速引用源自A1的数据“孤岛”。

defaultdict

您只需要在左上角引用粘贴目标的单元格。

答案 1 :(得分:0)

您无法在列中减去一行复制整列。如果这样做,则发生溢出。将您的副本限制一点,例如你可以尝试

Workbooks.Open Filename:="C:\Users\Username\Desktop\file1.csv"
intersect(Sheets("sheet1").Range("A:EW"),sheets("sheet1).usedrange).Copy ThisWorkbook.Sheets("sheet2").Range("A2")