【问题标题】:Copy range of cells to a new location将单元格范围复制到新位置
【发布时间】:2019-03-14 15:30:04
【问题描述】:

我想从 A1 单元格开始复制一系列单元格(动态行数)。下面的代码对我不起作用,因为它没有将整个单元格值范围从当前位置移动到 A1。请指教。

Range("E:E").Cut Range("A1")

例子,

如果 E 中的范围为 50 行,则剪切和移动应从 A1 开始并在 A50 结束。 如果 E 中的范围为 999 行,则剪切和移动应从 A1 开始,到 A999 结束。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    根据您上面的评论,请参见下面的代码:

    Sub CutPaste()
    
        Dim i As Long
        Dim sRow As Long, eRow As Long
        Dim ws As Worksheet
    
        Set ws = Sheets("Sheet1")
    
        'set the last row of data
        eRow = ws.Range("E" & ws.Rows.Count).End(xlUp).Row
    
        'find the start row of data
        For i = 1 To eRow
            If ws.Range("E" & i).Value <> "" Then
                sRow = i
                Exit For
            End If
        Next i
    
        'now cut and paste
        ws.Range("E" & sRow, "E" & eRow).Cut ws.Range("A1").Paste
        'clear clipboard and object
        Application.CutCopyMode = False
        Set ws = Nothing
    
    End Sub
    

    【讨论】:

    • 感谢您的意见。祝你有美好的一天。
    【解决方案2】:

    这应该适合你:

    Sub Kopy()
        Dim N As Long
        N = Cells(Rows.Count, "E").End(xlUp).Row
        Range("E1:E" & N).Cut Range("A1")
    End Sub
    

    注意:

    您无需为目的地指定相同的尺寸。一个单元格就可以了。

    之前:

    之后:

    【讨论】:

    • 感谢您的回复,但这并没有解决我的问题。原因是,我的数据从单元格 E10 开始(并且行数是动态的)。在上述方法中,它将所有内容复制到 A10。我希望它复制到 A1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2020-12-20
    相关资源
    最近更新 更多