2016-04-18 13 views
0

Ich versuche, Werte in eine bestimmte Zelle einzufügen ist ActiveSheet.paste die beste Option, dies zu tun? Um dies anders auszudrücken, möchte ich einfügen, was ich in Zelle A1 kopiert habe, indem ich auf die Schaltfläche Main() klicke und dann auf ElkhartEast() klicke. Ich möchte, dass alles, was ich kopiert habe, in Zelle A300 ist. Aktuelle Code:Wie Sie Werte in eine bestimmte Zelle einfügen, indem Sie auf eine Befehlsschaltfläche klicken

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 

Antwort

0

Die Nutzung von .Select und .Paste ist nicht korrekt vba Codierung der Praxis.

Der folgende Code verwendet String oder Integer (je nachdem, was Sie benötigen), um den Wert zu halten und in den spezifischen Cell zu platzieren.

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 
0

Range("A600").Select wird nur die Zelle auswählen. Um den Wert einzufügen, müssen wir zuerst den Wert aus der Zelle kopieren. .Select kopiert den Wert nicht als solchen, sondern setzt den Fokus auf die entsprechende Zelle.
Und ActiveSheet.Paste wird den Wert (wenn überhaupt kopiert) in die Zelle einfügen, in der der Fokus derzeit festgelegt ist. Dies kann sehr willkürlich sein, wenn wir nicht konzentrieren, in denen wir würden

Statt die folgenden Code helfen auf dem Arbeitsblatt klicken:

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