我想仅在填充B2:BV2时复制A1:AV1中的内容。我想复制空白而不会粘贴标签或空格中的空格。作为第二步,我需要将B2:BV2复制到行C,从而消除任何空白单元格。第三步我需要从行C中获取这些条目,这样只有4个条目填充后面的行D到末尾(不超过10行)。 我想出了以下只有部分粘贴(我能做的最好)。
Sub Copy()
If IsEmpty(Range("A2").Value) = False Then
ActiveSheet.Range("A1").Copy Range("A3")
End If
If IsEmpty(Range("B2").Value) = False Then
ActiveSheet.Range("B1").Copy Range("B3")
End If
If IsEmpty(Range("C2").Value) = False Then
ActiveSheet.Range("C1").Copy Range("C3")
End If
If IsEmpty(Range("D2").Value) = False Then
ActiveSheet.Range("D1").Copy Range("D3")
End If
If IsEmpty(Range("E2").Value) = False Then
ActiveSheet.Range("E1").Copy Range("E3")
End If
Sheet1.Range("a3:Y3").SpecialCells(xlCellTypeConstants).Copy ActiveSheet.Range("A4")
End Sub
直到AO之后它才会崩溃并且没有复制正确的细胞。我知道应该做的是数组的类型,但我无法弄清楚循环。
答案 0 :(得分:1)
首先使用更好的循环进行单元格检查和复制,这将包含您想要的所有条件: PS。我的意思是代码中的逻辑不仅仅是我写的代码:
For I = 1 To Sheet1.Columns.Count
If Sheet1.Cells(1, I).Value <> "" and not IsNull(Sheet1.Cells(1, I).Value) Then
I2=I2+1
Sheet1.Cells(2, I2).Value=Sheet1.Cells(1, I).Value
End if
If Sheet1.Cells(2, I2).Value <> "" and not IsNull(Sheet1.Cells(2, I2).Value) Then
I3=I3+1
Sheet1.Cells(3, I3).Value=Sheet1.Cells(1, I2-1).Value
End if
在此之后我认为你可以向前迈进。否则写下你面对的。