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

以下是我试过的代码-

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

最佳答案

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

Dim a As Variant
a = Cells(x, 1).Value
Cells(x, 2).Value = a

如果要保留所有值,则需要使用数组:
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

我还推荐显式变量声明。它可以在您的选项中找到,也可以通过在任何 subs 或函数上方的非常顶部键入 Option Explicit 来找到。这将迫使您声明变量。我知道作为新手,这感觉像是一种负担,但只需将一个错字声明为新变量即可改变您的想法。

关于VBA |如何在Excel中将值从单元格复制到单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23668143/

10-10 19:01