如何移动到下一个空白单元格?

我有一个工作簿中的多个工作表中的数据,我想要复制到同一工作簿中的一个工作表。 当我运行macros,我希望它开始删除“iPage数据导出”工作表中的当前数据,然后用其他工作表中的数据replace它。

我希望这个过程一次发生一列,因为我可能不会把所有东西都带回来。 现在我正在学习如何做一列。

我能够从一张纸上复制一列中的所有内容,但是当它移动到下一张时,它会覆盖现有的数据。 最后,我只复制了一张价值数据。

这是我的四个问题:

  1. 如何在运行例程之前清除此表中的数据?

  2. 我怎样才能使它开始在该行的底部(即在最后一个单元格的值)复制function? 我已经尝试了许多关于这个和其他董事会的build议没有成功。 我承认我不是很有经验。

  3. 我怎样才能把它复制到一个特定的列(目前它似乎只是默认为A.

  4. 如何在粘贴function中连接多个列? 即如果我想要它插入:A2&“,”B2而不是只是A2

  Sub CombineData() 

Dim Sht As Worksheet For Each Sht In ActiveWorkbook.Worksheets If Sht.Name <> "iPage Data Export" Then Sht.Select Range("C:C").Copy Sheets("iPage Data Export").Select ActiveSheet.Paste Else End If Next Sht End Sub

如何在运行例程之前清除此表中的数据?

 Sht.Cells.ClearContents 

我怎样才能使它开始在该行的底部(即在最后一个单元格的值)复制function? 我已经尝试了许多关于这个和其他董事会的build议没有成功。 我承认我不是很有经验。

 Range("C" & Rows.Count).End(xlUp).Offset(1, 0) 

详细:

  • Rows.Count将返回工作表中的行数,所以在传统风格的* .xls工作簿中,这将返回65,536。 因此"C" & Rows.Count C65536C65536相同

  • Range("C" & Rows.Count).End(xlUp)与前往C65536并按下Ctrl + ↑相同 – 命令End(xlDirection)告诉程序去该范围内的最后一个单元格。 在这种情况下,我们最后将在最后一个包含C列数据的单元格

  • .Offset(1, 0)表示我们想要返回一定数量的行和/或列的范围偏移量。 VBA使用RC(行列)引用,所以无论何时您看到类似Offset()函数的两个数字作为parameter passing时,它通常都与该行和列依次相关。 在这种情况下,我们希望位于最后一个单元格下方一行的单元格。

  • 总而言之, Range("C" & Rows.Count).End(xlUp).Offset(1, 0)表示转到C列的最后一个单元格,直到我们用数据命中最后一个单元格,然后返回下面的单元格 – 这将是下一个空单元格。

我怎样才能把它复制到一个特定的列(目前它似乎只是默认为A.

 Range("C:C").Copy Destination:=Sheets("iPage Data Export").Range("A:A") 

您可以在同一行中传递Destination参数,并实际绕过剪贴板(更快更干净)

如何在粘贴function中连接多个列? 即如果我想要它插入:A2&“,”B2而不是只是A2

比方说,你想引用列A,B和F – 只是使用:

 Range("A1, B1, F1").EntireColumn 

总结一下,你可以简化你现有的代码,如(未经testing):

 Sub CombineData() Dim Sht As Worksheet For Each Sht In ActiveWorkbook.Worksheets If Sht.Name <> "iPage Data Export" Then Sht.Range("C1:C" & Cells(Sht.Rows.Count, 3).End(xlUp).Row).Copy Destination:=Sheets("iPage Data Export").Range("A:A") End If Next End Sub 

这应该为复制做:

 Sub CombineData() Dim sheet As Worksheet For Each sheet In Worksheets If (sheet.Name <> "iPage Data Export") Then sheet.Select Range("A1", ActiveCell.SpecialCells(xlLastCell)).Select Selection.Copy Worksheets("iPage Data Export").Activate Cells(1, ActiveCell.SpecialCells(xlCellTypeLastCell).Column + 1).Select ActiveSheet.Paste End If Next End Sub 

对于连接,你需要更具体 – 但我想你应该打开一个新的问题,更明确的焦点,如果你需要特定的帮助。