如何通过单击命令按钮将值粘贴到某个单元格中

时间:2016-04-18 13:29:17

标签: excel vba excel-formula

我试图将值粘贴到给定的单元格上是ActiveSheet.paste执行此操作的最佳选择吗?换句话说,我想通过单击按钮Main()然后单击按钮ElkhartEast()将我复制的任何内容粘贴到单元格A1上,我希望我复制的任何内容都在单元格A300中。现行守则:

Sub Tennessee()
    Range("A600").Select
    ActiveSheet.paste
End Sub
Sub Alabama()
    Range("A900").Select
    ActiveSheet.paste
End Sub
Sub Main()
Range("A1").Select
ActiveSheet.paste
End Sub
Sub NorthCarolina()
    Range("A1200").Select
    ActiveSheet.paste

End Sub
Sub Pennsylvania()
    Range("A1500").Select
    ActiveSheet.paste
End Sub
Sub Texas()
    Range("A1800").Select
    ActiveSheet.paste
End Sub
Sub WestCoast()
    Range("A2100").Select
    ActiveSheet.paste
End Sub

Sub ElkhartEast()
    Range("A300").Select
    ActiveSheet.paste
End Sub

2 个答案:

答案 0 :(得分:0)

使用.Select.Paste并不是正确的vba编码实践。

以下代码使用StringInteger(取决于您的需要)来保存值并将其放在特定的Cell中。

Option Explicit
'If you need a number value then Integer
Dim intValue as Integer
'If you need a text value then String
Dim strValue as Integer

'As example I will use Integer
Sub Main()
   IntValue = Range("A1").Value
End Sub

Sub NorthCarolina()
   Range("A1200").Value = IntValue
End Sub

Sub Pennsylvania()
   Range("A1500").Value = IntValue
End Sub

Sub Texas()
   Range("A1800").Value = IntValue
End Sub
Sub WestCoast()
   Range("A2100").Value = IntValue
End Sub

Sub ElkhartEast()
   Range("A300").Value = IntValue
End Sub

Sub Tennessee()
   Range("A600").Value = IntValue
End Sub

Sub Alabama()
   Range("A900").Value = IntValue
End Sub

答案 1 :(得分:0)

Range("A600").Select将只选择单元格。要粘贴该值,我们需要先从单元格中复制该值。 .Select不会复制该值,而只会将焦点设置在相应的单元格上 并且ActiveSheet.Paste会将值(如果完全复制)粘贴到当前设置焦点的单元格中。如果我们不关注我们点击工作表的位置,这可能是非常随意的

相反,下面的代码会有所帮助:

Sub Tennessee()
        Range("A1").Copy
        Range("A2").PasteSpecial
End Sub