VBA-复制粘贴带有空白单元格的列

时间:2018-11-08 17:37:44

标签: excel vba excel-vba

嗨,我正在尝试编写代码以将不同列中的值从一张纸复制到另一张纸(两张纸都有相同的标题) 我可以使用以下代码简单地复制和粘贴几列。 但是对于列之间有空白列的列,复制这些列的最佳方法是什么。 我知道可以使用变量完成此操作,我很想知道是否可以在不使用任何变量的情况下完成此操作。

此外,有没有一种更聪明的方法来编写代码以一次性复制所有列(无论是否声明任何变量)enter image description here

Sheets("type 1").Select
Cells.Find(What:=" Netherland ").Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("type 2").Select
Cells.Find(What:=" Netherland ").Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste 

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情

Worksheets("type 2").Columns(Worksheets("type 2").Find("*Netherland*").Column).Value _
= Worksheets("type 1").Columns(Worksheets("type 1").Find("*Netherland*").Column).Value

您可以通过将列号设置为变量,而只使用它们而不是实际的行来查找它们,从而使这一过程变得更加整洁,但这不需要任何其他变量。

答案 1 :(得分:0)

您可以尝试使用SpecialCells属性来包括整个列,包括出现在第一个和最后一个单元格之间的任何空单元格。

所以您在哪里:

Range(Selection, Selection.End(xlDown)).Select

请改为使用类似以下内容:

.Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell))

尽管您必须更改范围引用以适合您的项目。