2016-04-21 9 views
1

Ich bin auf diesem Problem für eine sehr lange Zeit festgefahren worden. Ich habe mir Wege ausgedacht, aber jeder bringt mehr Probleme auf den Tisch.#NAME? Wie man eine Formelleiste liest, um die Formel eines Fehlers zu ändern - überschreibe es nicht

Mein Makro kopiert und fügt Informationen aus Microsoft Word in Excel ein und formatiert dann das Excel-Blatt.

Einige der Zellen zeigen jedoch einen #NAME? Error. Der Grund dafür ist, dass die Zelle in "= ------- List SC" kopiert wird. Ich muss in diese Zelle und entfernen Sie die "= ------" und lassen Sie nur die Zeichenfolge List SC.

Ich kann es aber nicht einfach überfahren, weil es sich jedes Mal ändert. Es könnte "List FL" oder "List BP" oder jede andere Variation sein.

Ich kann keine InStr oder irgendeine andere Funktion ausführen, weil der VBA-Code es nur als einen Fehler liest und die Formelleiste nicht liest. Es liest nur "#NAME?" oder erkennt einen Fehler.

Hat jemand Vorschläge, was ich tun kann?

Ich habe ein Bild des Problems aufgenommen. Die Highlights sind die Fehler- und die Formelleiste.

Vielen Dank!

Jonathan

snippet of the formula bar and error

+0

Können Sie nicht die InStr Suchanfrage tun für '= -----', während Sie aus Word kopieren in Excel? – Jack

+0

Hallo Jack, wenn du sagst "während" meinst du bevor ich kopiere? Da es kopiert, glaube ich nicht, dass ich irgendwelche Manipulationen machen kann. – Jonh

Antwort

0

So stellt sich heraus, dass ich die Formel in eine Zeichenfolge speichern und ein "" als erstes Zeichen in der Zeichenfolge hinzufügen kann. Ich kann dann die bestehende Formel in der Zelle durch die Zeichenfolge (im Folgenden stfF genannt) ersetzen.

Dies ist mein Code.

Dim STRF As String

For x = 4 To 100 
    strF = "'" & Cells(x, 1).Formula 
    Cells(x, 1) = strF 
Next 
2

Mein Makro copys und Pasten Informationen aus Microsoft Word in Excel ... Einige der Zellen zeigen jedoch ein #NAME? Error.

Sie müssen die Zeichenfolge, die Sie aus Word erhalten bearbeiten vor Sie es in Excel einfügen. Sie müssen alle ungültigen Zeichen aus der Zeichenfolge entfernen. Dann können Sie es als Formel einfügen.

Wenn ----List der Wert ist, den Sie in der Zelle haben möchten, dann setzen Sie ihn mit einem einfachen Zitat voran: '----List, so wird es als Text interpretiert.

+0

Ich fand einen einfacheren Weg mit Ky11 Vorschlag. Danke für die Hilfe obwohl – Jonh

2

Verwenden Sie in VBA die Methode .Formula, um auf die tatsächlich verwendete Formel zuzugreifen und die Zeichenfolge zu ersetzen.

With Cells(1,3) 
    .Formula = Replace(.Formula, "=------ ", "") 
End With 
+0

Hi yk11, das scheint nicht zu funktionieren. Wenn ich in die Zelle komme, erkennt sie nicht, was in der Formelleiste steht. Mit meinem Cursor über der Zelle liest es einfach "Fehler 2029". Daher glaube ich nicht, dass ein Ersetzen funktionieren kann. – Jonh

+0

Aktivieren Sie "Formeln anzeigen", um zu sehen, was Excel dort tatsächlich enthält. – yk11

+0

Hallo Yk11, das wird tatsächlich funktionieren, als alles was ich tun muss, ist der Benutzer die Formel anzeigen lassen. Weißt du, wie ich Show-Formeln in VBA nur für Spalte A einschalten kann? – Jonh