您好,我正在尝试写一个代码,将不同列中的值从一个工作表复制到另一个工作表(两个工作表具有相同的标题),有几个列,我可以简单地复制和粘贴使用下面的代码。但是对于中间有空白列的列,复制这些列的最佳方法是什么。我知道这可以使用变量来完成,我很好奇是否可以在不使用任何变量的情况下完成。
此外,有没有更聪明的方法来编写代码来一次性复制所有列(无论是否声明任何变量)

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 发布于 2018-11-09 02:05:56
你可以试试这样的东西
Worksheets("type 2").Columns(Worksheets("type 2").Find("*Netherland*").Column).Value _
= Worksheets("type 1").Columns(Worksheets("type 1").Find("*Netherland*").Column).Value通过将列号设置为变量,并使用它们而不是实际的行来查找它们,可以使这一过程更简洁,但这不需要任何额外的变量。
发布于 2018-11-09 04:01:08
您可以尝试使用SpecialCells属性来包括整个列,包括出现在第一个和最后一个单元格之间的任何空单元格。
所以你有:
Range(Selection, Selection.End(xlDown)).Select取而代之的是使用如下内容:
.Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell))不过,您必须更改范围引用以适应您的项目。
https://stackoverflow.com/questions/53213283
复制相似问题