2011-04-24 89 views
1

仅当范围(a3:M3)为空时,我想将工作表“SL”中的范围(a3:M3)中的数据复制到工作表“EL”中的范围(a3:m3) 。否则将所选数据复制到下一行(a4:m4)。跳过非空单元格以粘贴特殊数据

下面是我试图找出..但它不工作的代码... plz帮助

Range("C9:G10").Select 
Selection.Copy 
Sheets("EL").Select 

For n = 1 To n = 100 
    If Cells(n, 2).Value <> "" Then 
     Cells(n + 1, 2).Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 
    End If 
Next n 

回答

1

有代码中的某个点,我不明白:

  • 为什么它是指C9:G10
  • 为什么从n=1 to 100有一个循环?
  • 语法For n = 1 To n = 100不起作用如你所料 - >与For n = 1 To 100更换)

这里是我的解决问题的方法:

Sub copyRange() 

    ' Look if destination cells are empty 

    Dim isempty As Boolean  
    isempty = True 

    For Each cell In Sheets("EL").Range("a3:m3").Cells 
     If cell.Value! = "" Then isempty = False 
    Next 

    ' Copy content from SL to EL into the correct line 
    Sheets("SL").Range("a3:m3").Select 
    Selection.Copy 
    If isempty Then 
     Sheets("EL").Range("a3:m3").PasteSpecial Paste:=xlPasteValues 
    Else 
     Sheets("EL").Range("a4:m4").PasteSpecial Paste:=xlPasteValues 
    End If 
End Sub 
+0

感谢霍华德C9:G10仅仅是!要复制的初始数据(为便于参考,我把a3:m3)很抱歉,因为我的问题最初不清楚。实际上它应该是连续的。也就是说,如果a3:m3不为空,则应该转到a4:m4,如果a4:m4不为空,则a5:m5并继续到excel中的最后一个单元或将其限制为a10000:m10000 – VeeRz 2011-04-24 09:18:28