VBA | 如何在Excel中将值从单元格复制到单元格

Nit*_*hav 2 excel vba copy-paste excel-vba

我想将一个单元格值复制到另一个单元格,但我希望将该值保留在变量中,以便我可以根据需要使用它.

以下是我试过的代码 -

Private Sub CommandButton1_Click()
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
For x = 1 To NumRows
    a= Cells(x, 1).Value.Copy
    Cells(x, 2).Value= a.PasteSpecial
Next
End Sub
Run Code Online (Sandbox Code Playgroud)

Cod*_*key 6

无需使用该Range.Copy方法.试试这个:

Dim a As Variant
a = Cells(x, 1).Value
Cells(x, 2).Value = a
Run Code Online (Sandbox Code Playgroud)

如果要保留所有值,则需要使用数组:

Dim x As Long
Dim NumRows As Long

NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
ReDim a(1 to NumRows)

For x = 1 To NumRows
    a(x) = Cells(x,1).Value
    Cells(X,2).Value = a(x)
Next x
Run Code Online (Sandbox Code Playgroud)

我还建议显式变量声明.它可以在您的选项中找到,也可以在Option Explicit非常顶部,在任何潜艇或功能上方输入.这将强制您声明变量.我知道这感觉像是一个新手的负担,但它只需要一个错字被宣布为一个新的变量来改变你的想法.