Wie kann man eine Formel im Hintergrund einer Zelle in Microsoft Excel ausführen und einem Benutzer die Dateneingabe ermöglichen?

Wie kann man eine Formel im Hintergrund einer Zelle in Microsoft Excel ausführen und einem Benutzer die Dateneingabe ermöglichen?

Ich versuche, eine Tabelle zu erstellen, die die Daten aus mehreren Zellen zusammenstellt.

A1Im Wesentlichen möchte ich, dass die Zelle Sheet1dieselben Sheet2vom Benutzer eingegebenen Informationen widerspiegelt, ohne dass die Formel beim Eingeben der Daten gelöscht wird.

Die Benutzer müssen in der Lage sein, Daten in diese Zellen einzugeben. Durch die Verwendung von =Sheet2!A1oder =Sheet1!A1erstelle ich jedoch einen zirkulärer Verweis und stelle außerdem sicher, dass die Formel von den Benutzern gelöscht werden kann.

Kann jemand eine Möglichkeit zur Lösung dieses Problems empfehlen?

Antwort1

Sie können keine Daten in eine Zelle eingeben, die eine Formel enthält, und gleichzeitig die Formel beibehalten.

Eine Lösung besteht darin, dass der Benutzer die Daten in eine andere Zelle eingibt und dann in A1beiden Blättern auf diese Zelle verweist.

Antwort2

Ohne Makro geht es nicht. Dieser Code sollte funktionieren:

Private Sub Worksheet_Change(ByVal Target As Range)
    therow = 1
    thecolumn = 1
    Dim wks As Worksheet
    cellrow = Target.Row
    cellcolumn = Target.Column
    If (cellrow = therow And cellcolumn = thecolumn) Then
        Set wks = ThisWorkbook.Worksheets("Sheet2")
        wks.Cells(cellrow, cellcolumn) = Target.Value
    End If
End Sub

Öffnen Sie Makros mit ALT+ F11, DoppelklickBlatt1auf der linken Seite und fügen Sie den Code auf der rechten Seite ein. Dieser Code wird in ausgeführt Sheet 1, daher kopiert er Änderungen in Sheet1 A1nach Sheet2 A1.

Jedes Mal, wenn es eine Änderung im Arbeitsblatt gibt, wird dieses Makro ausgeführt. Es prüft, ob die geänderte Zelle in Zeile 1 und Spalte 1 (Zelle A1) ist und kopiert dann den Wert in dieselbe Zelle inTabelle 2.

Wenn Sie Änderungen überprüfen möchten vonTabelle 2ZuBlatt1also, dann:

  1. DoppelklickTabelle 2auf der linken Seite.
  2. Fügen Sie den Code auf der rechten Seite ein.
  3. Ändern Sie die Zeile Set wks = ThisWorkbook.Worksheets("Sheet2"), um das neue Ziel anzugeben: Set wks = ThisWorkbook.Worksheets("Sheet1").

Im Moment verwendet dieses Makro die Variablendie ReiheUnddie Kolumneum die Entscheidung zu treffen, den Wert in das andere Arbeitsblatt zu kopieren. Zu Beginn sind sie in den Zeilen auf 1 gesetzt therow=1und thecolumn=1bedeuten, dass wir an der Zelle interessiert sindA1. Und weiter prüfen wir, ob die geänderte Zelle mit diesen Werten in der Zeile übereinstimmt If (cellrow = therow And cellcolumn = thecolumn) Then.

Sie können die Werte ändern, um sie an Ihre Bedürfnisse anzupassen, und sogar nach einer vollständigen Spalte oder Zeile suchen, zum Beispiel:

Wenn Sie die Überprüfungszeile ändern, If (cellcolumn = thecolumn) Thenwerden die Änderungen in der Spalte kopiert, die den gleichen Wert wie die Variable hat, thecolumnunabhängig davon, in welcher Zeile sie sich befindet.

Anderes Beispiel:

Wenn Sie die Bestätigungszeile auf ändern, If (cellcolumn > thecolumn) Thenwerden die Änderungen kopiert, die in einer Spalte vorgenommen werden, die größer als der Wert von thecolumnist, unabhängig davon, um welche Zeile es sich handelt.

verwandte Informationen