嗨,我正在尝试编写代码以将不同列中的值从一张纸复制到另一张纸(两张纸都有相同的标题) 我可以使用以下代码简单地复制和粘贴几列。 但是对于列之间有空白列的列,复制这些列的最佳方法是什么。 我知道可以使用变量完成此操作,我很想知道是否可以在不使用任何变量的情况下完成此操作。
此外,有没有一种更聪明的方法来编写代码以一次性复制所有列(无论是否声明任何变量)
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
答案 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))
尽管您必须更改范围引用以适合您的项目。