繁体   English   中英

非常基本的剪切/粘贴 VBA

[英]Very Basic Cut/Paste VBA

VBA 非常新:

我希望将单元格 C2 中的数据剪切到列的末尾并粘贴该数据,从单元格 e2 开始。

我知道这应该非常简单,但是我已经尝试了一些事情并且仍然卡住了。 数据被直接剪切,但无法粘贴。

最近的尝试:

Sub CutPaste_Data()
    
    Range("c2", Range("c2").End(xlDown)).Select
    
    Selection.Cut
    
    Range("e2", Range("e2").End(xlDown)).Select
    
    Selection.PasteSpecial

由于您是新手,我将尝试使用我的示例解决方案来强制养成一些好习惯:)

Option Explicit

Sub CopyData()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    With ws
        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, 3).End(xlUp).Row
        .Range(.Cells(2, 5), .Cells(lastRow, 5)).Value = .Range(.Cells(2, 3), .Cells(lastRow, 3)).Value
        .Range(.Cells(2, 3), .Cells(lastRow, 3)).Value = vbNullString
    End With
End Sub

以下是您的 VBA 代码的好习惯:

  1. 始终使用Option Explicit
  2. 始终清楚所引用的工作表或范围
  3. 使用中间变量(例如lastRow )来帮助自己使代码更具可读性。 是的,这是几行额外的代码。 但在许多情况下,它可以让你的代码更快(如果这是一个问题的话),但你会发现从长远来看,可读性总是对你有更大的帮助。
  4. 避免在代码中使用Select

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM