我想将一个单元格值复制到另一个单元格,但我想将该值保留在一个变量中,以便我可以根据需要使用它。
以下是我试过的代码-
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/