wie kann ich innerhalb eines Makros feststellen, ob die aktive Zelle eine Fehlermeldung ausgibt? (um dann eine Verzweigung anzusteuern)
If Selection = Fehler GoTo 30
geht schon mal nicht. Aber ihr seht (hoffe ich) was ich will.
Liebe Grüße
Claus
Sub copylinks()
' copy der aktuellen Zelle nach unten, bis zur höchsten befüllten Zeilennr. weiter links
Dim bs As Variant
Dim bz As Variant
Dim prf As Variant
Dim af As Variant
bs = ActiveCell.Column
bz = ActiveCell.Row
' sicherstellen, dass zu befüllender Bereich leer
Selection.End(xlDown).Select
If ActiveCell.Row "" Then Stop
' letzte Zeile der nächstbefüllten Spalte links (bzw. rechts, wenn´um Spalte A geht) daneben _
feststellen
prf = 0
10
prf = prf + 1
If bs = 1 Then prf = prf - 2
Cells(65536, bs - prf).End(xlUp).Select
af = ActiveCell.Row
If af bs Then Stop
' kann sein, wenn A1 verbundene Zelle
' Verzweigung wenn "uw" oder "uwf"
Stop
' Bei Fehler geht die Abfrage nicht, deshalb vorab bei Fehler goto 30
' If Left(Selection.Text, 1) = "#" Then GoTo 30
If IsError(Selection(1)) Then GoTo 30
'if Selection = "fehlermeldung, wie auch immer das hinzubekommen ist) then goto 30
If Selection = "uw" Then GoTo 700
If Selection = "uwf" Then GoTo 750
30
Selection.Copy
ActiveCell.Offset(0, 0).Range(af).Select
ActiveSheet.Paste
'zum Ende springen bzw. Anfang, wenn rechts noch was kommt
Selection.End(xlToRight).Select
If ActiveCell.Column 1 Then Stop
ActiveCell.Offset(1, 0).Range("A1").Select
'ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(MATCH(RC[-1],R1C[-1]:R[-1]C,0)),RC[-1],"""")"
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(MATCH(RC[-1],R1C[-1]:R[-1]C[-1],0)),RC[-1],"""")"
Selection.Copy
ActiveCell.Offset(0, 0).Range(af).Select
ActiveSheet.Paste
Stop
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.End(xlDown).Select
Selection.ClearContents
Range("A1").Select
ActiveCell.Offset(bz - 1, bs - 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(MATCH(RC[-1],R[-5]C:R[-1]C,0)),RC[-1],"""")"
GoTo 990
750
' Warnung falls Vorzeile nicht sortiert, Formel für unterschiedliche Werte einkopieren
Stop
' under construction, copyteil:
Selection.Copy
ActiveCell.Offset(0, 0).Range(af).Select
ActiveSheet.Paste
960
Range("A1").Select
ActiveCell.Offset(bz - 1, bs - 0).Range("A1").Select
GoTo 990
980
Selection.End(xlToLeft).Select
Selection.End(xlDown).Select
990
End Sub
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen