我试图将值粘贴到给定的单元格上是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
答案 0 :(得分:0)
使用.Select
和.Paste
并不是正确的vba编码实践。
以下代码使用String
或Integer
(取决于您的需要)来保存值并将其放在特定的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