2017-01-19 5 views
1

Guten Abend!Excel-Anweisungen Logische Konzeption

Ich versuche, einige Excel Aussage zu machen um das Aussehen zu haben unter:

Ticket

Was ich versuche zu tun, dass:

if(A1=1 and B1=0) output would be A1=1 and B2=0 
if(A1=0 and B1=1) output would be A1=0 and B2=1 
if(A1=0 and B2=0) output is an error. 
if(A1=1 and B2=1) output is an error. 
if(A1="-"and B2="-") output would be A1="-" and B2="-". 

Das Gleiche gilt für alle Zelle geht von A und B. Irgendwelche Vorschläge?

+1

Mit Ausgabe meinst du eine Nachrichtenbox? Oder möchten Sie, dass der Wert in den Zellen in die Ausgabe geändert wird? –

+0

Nur damit Sie wissen, warum @VBAPete fragt, kann sich eine Formel nicht selbst referenzieren. –

Antwort

0

Sie den folgenden Code benötigen Post, dass Ihr Makro aktiviert wird, wenn irgendetwas in Spalte A oder B in das Blatt Objekt geändert wird:

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim x As Long 

    If Not Intersect(Target, Columns("A:B")) Is Nothing Then 
     Call Evaluatecells 
    End If 

End Sub 

und den Code unten, die Ihre Zellen für die Kriterien auswertet, gehen in das Modul ein:

Sub Evaluatecells() 

lastrow = ActiveSheet.UsedRange.Rows.Count 

For x = 2 To lastrow 
     If Cells(x, 1).Value = 0 And Cells(x, 2).Value = 0 Then 
      MsgBox ("Error - Values in A1 and B1 cannot be both 0.") 
      Exit For 
     ElseIf Cells(x, 1).Value = 1 And Cells(x, 2).Value = 1 Then 
      MsgBox ("Error - Values in A1 and B1 cannot be both 1.") 
      Exit For 
     End If 
    Next x 

End Sub 

Lassen Sie mich wissen, wenn Sie Fragen haben.

+0

Das Konzept ist, dass wenn der Benutzer Werte 0 oder 1 eingibt, die Ausgabe 1 oder 0 für nur eine Zelle ist, nicht beides. Für - und - Ausgabe wäre - auf beiden Zellen. Für 1 und 1, wenn jemand beide Zelle 1 eingibt, wird ein Alarm auftauchen, um zu sagen, dass nur 0 für diese Zelle akzeptiert wird. Das gleiche gilt für 0. Danke Jim! – Jimmy84

+0

@ Jimmy84 Hat der aktualisierte Code für Sie funktioniert? –