跳过非空单元格以粘贴特殊数据

时间:2011-04-24 07:43:34

标签: excel vba copy-paste

仅当范围(a3:M3)为空时,我想将工作表“SL”中的范围(a3:M3)中的数据复制到工作表“EL”中的范围(a3:m3)。否则将所选数据复制到下一行(a4:m4)。

以下是我试图解决的代码..但它不起作用... plz help

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 个答案:

答案 0 :(得分:1)

您的代码中有一些我不明白的地方:

  • 为什么会引用C9:G10
  • 为什么来自n=1 to 100的循环?
  • 语法For n = 1 To n = 100无法正常工作 - &gt;将其替换为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