一次只复制2列以前的单元格吗?

在这里输入图像描述

可以同时复制两列的单元格值(两列=string中的值不同)。 现在我正在分开做。

1:

Do Until ActiveCell.Row >= LastRow If Trim(ActiveCell.Offset(1, 0)) = "" Then ActiveCell.Offset(1, 0).Value = ActiveCell End If ActiveCell.Offset(1, 0).Select Loop 

然后又是第三列

  Cells(FirstRow + 2, 2).Select Do Until ActiveCell.Row >= LastRow If Trim(ActiveCell.Offset(1, 0)) = "" Then ActiveCell.Offset(1, 0).Value = ActiveCell End If ActiveCell.Offset(1, 0).Select Loop 

其实我编码如下,它同时进行,但有一个缓慢,它缓慢

 Sub Kopi() Dim i, y As Integer For i = 1 To 100 For y = 1 To 100 If Trim(Cells(i + 1, 1)) = "" And Trim(Cells(y + 1, 2)) = "" Then Cells(i + 1, 1).Value = Cells(i, 1) Cells(y + 1, 2).Value = Cells(y, 2) End If Next y Next i End Sub 

这是你需要的吗? 它通过给定范围( A1:B10 )中的空白单元格循环,并设置与上述值相同的空白单元格

 Sub Test() Dim rng As Range, r As Range Set rng = ThisWorkbook.Worksheets("Sheet1").Range("A1:B10").SpecialCells(xlCellTypeBlanks) For Each r In rng If Not r.Row = 1 Then r.Value = r.Offset(-1, 0).Value Next r End Sub