将非空白单元格从范围复制到范围

时间:2013-11-06 20:33:29

标签: excel vba excel-vba

我想知道你是否可以帮助我:

范围B11:B251& C11:C251可能有也可能没有某些值。 我希望能够从细胞范围M11:M251&中复制非空白细胞。 N11:N251至B11:B251& C11:C251,因此如果M& N范围内有任何值,则它们应覆盖B& C中相同行中的值,但如果M& N范围内有空白值,则不应复制它们并保留已存在的值(在B& C中。 我清楚了吗? ; - )

感谢您的回复!

2 个答案:

答案 0 :(得分:1)

这段代码应该可以解决问题:

Sub CopyRangeToRange()
    Dim CpyFrom As Range
    Dim Cell As Range

    Set CpyFrom = ActiveSheet.Range("M11:N251")

    For Each Cell In CpyFrom
        If Cell.Value <> vbNullString Then
            Cell.Offset(0, -11).Value = Cell.Value
        End If
    Next Cell
End Sub

答案 1 :(得分:1)

Sub Main()
    Dim i As Long
    For i = 11 To 251
        If Not IsEmpty(Range("M" & i)) Then _
            Range("B" & i) = Range("M" & i)
        If Not IsEmpty(Range("N" & i)) Then _
            Range("C" & i) = Range("N" & i)
    Next i
End Sub

此代码仅将非空值从M&amp; N列复制到B&amp; C