2016-05-06 21 views
3

Ich bin ein kompletter Anfänger, wenn es um das Schreiben in VBA geht und habe nach einer Antwort gesucht, die ich verwenden könnte, um mein Problem ohne Glück zu beheben. Ich habe einige verwandte Fragen gesehen, aber nichts, was ich anwenden konnte.Excel VBA Macro - Ausführen auf ausgewählten Zellen

Ich habe ein aufgezeichnetes Makro, das einfach eine führende 0 zu einer Zahl hinzufügt, indem Sie eine Verkettungsfunktion verwenden. Ich verwende Relative References, so dass das Makro auf der Zelle ausgeführt wird, die in Spalte A ausgewählt ist. Dies funktioniert, wenn ich jeder Zelle einzeln eine führende Null hinzufügen möchte. Ich möchte jedoch in der Lage sein, einfach die Zellen in Spalte A auszuwählen, denen ich eine führende 0 hinzufügen möchte, und dann das Makro für alle ausgewählten Zellen gleichzeitig auszuführen. Jede Hilfe wird sehr geschätzt!

Sub leadingzerotake2() 
ActiveCell.Offset(0, 10).Range("A1").Select 
ActiveCell.FormulaR1C1 = "=CONCATENATE(""0"",RC[-10])" 
ActiveCell.Select 
Selection.Copy 
ActiveCell.Offset(0, -10).Range("A1").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
ActiveCell.Offset(0, 10).Range("A1").Select 
Application.CutCopyMode = False 
Selection.ClearContents 
ActiveCell.Offset(0, -10).Range("A1").Select 
End Sub 

Vielen Dank !!!

Antwort

0

einfach setzen diesen Code in dem Arbeitsblatt-Modul -

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
If Target.Column = 1 And Target.Count < 1000 Then 
    For Each cell In Target.Cells 
     'run your fuction here 
    Next 
End If 

End Sub

da diese Funktion eine wirklich lange Zeit potentioly laufen kann, habe ich diese Operation zu einem Maximum von 1000 Zellen Auswahl begrenzt . Sie können diesen Teil entfernen, wenn Sie möchten.

BTW, wenn Sie simpy eine führende Null auf den Inhalt der ausgewählten Zelle hinzufügen wollen, würde ich einfach gesagt -

cell.Value = "0" & cell.Value 
Verwandte Themen