2017-07-18 1 views
0

Ich versuche, eine Art Trigger zu verwenden, um dem Benutzer dieses Blattes zu erlauben, einen ausgegebenen Wert zu nehmen (durch einen Algorithmus, den ich erstellt habe) und ihn in ein anderes Blatt zu transkribieren.Wie verwendet man "Trigger" in Excel 2010, um den Wert in den eingegebenen Zeilen- und Spaltennamen zu übertragen?

Die Zelle, für die der Wert transkribiert werden soll, wird ermittelt, indem der Name der Zeile und der Name der Spalte vom Benutzer übernommen werden.

In diesem Beispiel würde der Benutzer einzufügen X und Y als Zeilennamen und Spaltennamen ist. Sobald sie auf den Trigger-Button klicken (muss kein Button sein, ich bin bereit, jede Art von Trigger zu verwenden, aber ich nehme an, dass es einen geben muss, damit das funktioniert), der Wert in "Value (Rounded)" markierte Zelle wird auf die entsprechende Zelle transkribiert werden:

Diese Zelle ist, wo ich den Wert einfügen möchten.

Das Ziel ist die Automatisierung. Idealerweise muss der Benutzer nur den Zeilen- und Spaltennamen eingeben und einen Knopf (oder einen anderen Auslöser) drücken, der den Wert in das andere Blatt überträgt.

+0

Werfen Sie einen Blick auf die [Worksheet.Change Ereignis] (https://msdn.microsoft. com/VBA/Excel-VBA/Artikel/Arbeitsblatt-Change-Event-Excel). Der Benutzer müsste nicht auf irgendetwas klicken, um dies auszulösen. – jsheeran

Antwort

0

Sie müssen Ereignismakro innerhalb des SHEET-Codes verwenden (nicht Modulcode). Hier sind zwei Beispiele dafür, wie zu bekommen, wenn eine Zelle geändert wird oder wenn ein Doppelklick geschieht, sowohl auf spezifische Zellen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    If Not Intersect(Target, Range("E3")) Is Nothing Then 
    'Do something of Range("E3") has been double clicked 
    '(Basic Example) 
    'Range("G3").Value = "Range("B3").value 

    End If 


    End Sub 

    Private Sub Worksheet_Change(ByVal Target As Range) 
    'If a cell has chanced... 

    If Not Intersect(Target, Range("B3")) Is Nothing Then 
    'Do something 
    End If 

    End Sub 
0

eine Schaltfläche Hinzufügen kann durch die Schaffung einer Form (Rechteck oder andere) durchgeführt werden, nicht wahr Klicken Sie darauf und wählen Sie "Makro zuweisen". Dort können Sie ein Makro auswählen, das nach dem Klicken auf diese Form ausgeführt werden soll. Eine Anmerkung, das Makro muss jedoch ein "öffentliches Sub" sein.

1

Muss dies VBA sein? Dies kann mit einer ziemlich einfachen Formel erfolgen.

Annahmen:

  • Das Eingangsblatt Input genannt
  • Der Zeilenname ist in Zelle B1 (ändern Input (alle Verweise auf Eingabe ändern der tatsächliche Name dieses Blattes zu sein) B $ 1 $! (die tatsächliche Zeile Name Eintrag Zelle)
  • Der Spaltenname ist in Zelle B2 (Eingabe ändern! $ B $ 2, um die tatsächliche Spalte Name Eintrag Zelle sein)
  • Die Wert (abgerundete) Zelle ist in B4 (Eingabe ändern ! $ B $ 4, um die tatsächliche Wert (gerundet) Zelle zu sein)

Sie in der Zelle B2 unserer Output Blatt, in dieser Formel setzen und kopieren Sie dann über und unten:

=IF(AND(Input!$B$1=$A2,Input!$B$2=B$1),Input!$B$4,"") 
+0

Ich bemerkte, dass Sie "= $ A2" direkt nach "Input! $ B $ 1 =" eingeben, wo spielt A2 eine Rolle und muss ich das durch irgendetwas ersetzen? – Vedavyas

+0

Spalte A enthält Ihre Zeilennamen, also wäre $ A2 der erste Zeilenname in Ihrem Ausgabeblatt, weshalb die Formel in Zelle B2 geht. Gleiche Logik für Zeile 1, die Ihre Spaltennamen enthält. – tigeravatar

Verwandte Themen