2017-09-19 3 views
2

Ich arbeite an Excel-2010 und Excel-2013. Ich möchte etwas wie unten tun:Berechnung in Excel Zelle beim Verlassen der Zelle

Unabhängig von der Nummer, die ich in Zelle eingeben, muss diese Nummer durch 60 geteilt werden und das Ergebnis sollte in der gleichen Zelle gedruckt werden, indem Sie TAB drücken. Wenn ich zu dieser Zelle zurückkomme, sollte die eingegebene Nummer angezeigt werden, nicht das Ergebnis der Berechnung.

Ich weiß nicht viel über die Programmierung in Excel. Ich kann die meisten Websites aufgrund der Sicherheitsrichtlinien des Unternehmens nicht öffnen.

Kann mir bitte jemand dabei helfen!

+0

Haben Sie einen Zellbereich, für den diese Regel gilt, oder möchten Sie, dass diese Regel auf jede Zelle in einem Blatt angewendet wird? –

+0

Wenn der Wert in dieser Zelle in nachfolgenden Berechnungen verwendet wird, welcher Wert sollte verwendet werden? Der eingegebene Wert oder der * geteilt durch 60 * Wert? –

+0

Was ist der Zweck dieser Übung? Wenn es um Zeitberechnungen geht, gibt es möglicherweise einfachere Möglichkeiten, dies zu erreichen. –

Antwort

1

Bitte verwenden Sie diesen Code. Sie sollten diesen Code in Ihre Worksheet module, nicht Regular module einfügen. Passen Sie dann bitte Range("A1:A100") an, in welchen Zahlen geteilt werden soll.

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim DivRg As Range 
Set DivRg = Range("A1:A100") 
Set DivRg = Application.Intersect(Target, DivRg) 

If DivRg Is Nothing Or Target.Cells.Count > 1 Then Exit Sub 

Application.EnableEvents = False 
Target = Target/60 
Target.Offset(0, 5).Value = 1 
Application.EnableEvents = True 

Set DivRg = Nothing 

End Sub 


Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim DivRg As Range 

Set DivRg = Range("A1:A100") 
Set DivRg = Application.Intersect(Target, DivRg) 

If DivRg Is Nothing Or Target.Cells.Count > 1 Then Exit Sub 

Application.EnableEvents = False 
If Target.Offset(0, 5).Value = 1 Then 
Target = Target * 60 
Target.Offset(0, 5).Value = 0 
End If 
Application.EnableEvents = True 

Set DivRg = Nothing 
End Sub 

Ihre Aufgabe zu erfüllen, können Sie eine Helfer-Säule benötigt (ich wählte Spalte F), aber Sie können jede Spalte wählen und diesen Teil des Codes ändern Target.Offset(0, 5).Value diese Spalte zu adressieren. Wenn die Helperspalte beispielsweise Spalte E sein soll, verwenden Sie diesen Code Target.Offset(0, 4).Value. Stellen Sie sicher, dass Sie diesen Code in allen 3 Teilen von Subs ersetzen.

+1

Würde das nicht nur teilen, was mit 60 eingegeben wird? Wie kann dies den Rest seiner Anfrage erreichen: * Wenn ich zu dieser Zelle zurückkomme, sollte die eingegebene Nummer angezeigt werden, nicht das Ergebnis der Berechnung. * –

+0

Sie haben Recht, ich habe seine Frage falsch interpretiert. Ich habe meine Antwort angepasst. Danke für den Kopf. –

+0

@Kresimir L. Vielen Dank für Ihre Antwort, aber ich bin nicht in der Lage, Ihre Logik für meine Anforderung zu verwenden. Ich habe deine Antwort als akzeptiert markiert. Ich habe einen weiteren Post an unter Ort mit mehr Informationen erstellt. Kannst du bitte darüber nachdenken? https://stackoverflow.com/questions/46416787/excel-calculation-in-cell-for-certain-specified-cells –