Aufgezeichneter "Ersetzen"-Makro funktioniert nicht!
#1
Hallo zusammen,


ich habe eben dieses Makro aufgezeichnet der aber nicht funktioniert!?
Kann mir jemand sagen, warum? :)

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
   Range("F7:F29").Select
   Selection.Replace What:="#NV", Replacement:="", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False
End Sub

Vielen Dank
LG
Alexandra
Top
#2
=#N/V is das Ergebnis einer Formel.
Es ist kein Wert (Value) einer Zelle.
Wenn der Fehler verursacht wird von einer Formel, muss man die Formel löschen oder ändern.

Code:
Sub M_snb()
   on error resume next
   Range("F7:F29").specialcells(2,16)=""
   Range("F7:F29").specialcells(-4123,16)=""
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#3
Hi snb,

wieder was gelernt: :)

Range("F7:F29").SpecialCells(2, 16) = "" entspricht
Range("F7:F29").SpecialCells(xlCellTypeConstants, xlErrors) = "" 

Das #NV ist richtig, das war das Ergebnis einer Formel die ich jedoch mit:
Range("F7:F29").Value = Range("F7:F29").Value in Werte/Text umgewandelt habe!

Danke für dein Code und Erklärungen, aber das war nicht meine Frage, warum funktioniert der Code nicht den ich aufgezeichnet habe?

Danke
LG
Alexandra
Top
#4
Hallo Alexandra,

gelöscht
Gruß Stefan
Win 10 / Office 2016
Top
#5
Huh
Top
#6
Und was passiert nun ?


Code:
Sub M_snb()
   Range("F7:F29").Value = Range("F7:F29").Text
   Range("F7:F29").Replace "#N/V", "", 2
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#7
Hi snb,

mit der ersten Zeile wird der gesamte Bereich gelöscht auch andere Werte <> #NV.
Die zweite Zeile passiert nichts!



LG
Alexandra
Top
#8
Arbeitest du in ein sehr exotischem Excel ? :19:

Ich kann es nicht nachvollziehen.

Biitte eine Beispieldatei,
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#9
Hallo Alexandra, :19:

VBA will es in Englisch. Der Rekorder zeichnet das auf, was du eingibst. Also schreibe entweder (nachdem du den Bereich in Werte umgewandelt hast): :21:

Code:
.Replace What:="#N/A", Replacement:="", LookAt:=xlPart,......

Oder eben: :21:

Code:
Range("F7:F29").Replace "#N/A", ""
Top
#10
Hi snb,

hier meine "exotische" Beispieldatei, mit deiner ersten Codezeile wird alles gelöscht, wie ich schon sagte!

Mit deiner zweiten Codezeile, passiert gar nichts, es sein denn man schreibt es richtig, sowie Case! :)

@Case, danke für die vernünftige Erklärung!

LG
Alexandra


Angehängte Dateien
.xlsm   Replace.xlsm (Größe: 11,88 KB / Downloads: 4)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste