2013-04-15 12 views
5

I zostały poszukiwania całego rozwiązania i nie mogłem znaleźć.Jak przekonwertować rzeczywisty wzór excel (nie wynik) do ciągu tekstowego

Powiedzmy mam wpisać w komórce A1: = if (A2> 1,1,0)

Excel zinterpretuje to i albo wrócić 1 lub 0.

Jednak to, co chciałbym robić jest dosłownie przekształcić tę formułę do napisu: '= if (A2> 1,1,0)'

Jeśli Ctrl + ~ do programu Excel, zobaczysz wszystkie formuły. Zasadniczo co chcę zrobić, na zakończenie, to podjąć wszystkie te formuły i uczynić je ciągi.

(celem, jeśli zależy, jest porównanie tych ciągów z innego skoroszytu, aby upewnić się, że nic nie usuwać)

Odpowiedz

10

Możesz do tego zdefiniować funkcję zdefiniowaną przez użytkownika.

Umieść ten kod w Module (nie arkusz kod arkusza, klasy lub formy)

Function GetFormula(rng As range, Optional asR1C1 As Boolean = False) As String 
    If asR1C1 Then 
     getFormula = rng.FormulaR1C1 
    Else 
     getFormula = rng.Formula 
    End If 
End Function 

i nazywają to w arkuszu jak tak

=GetFormula(A1) 

lub jeśli chcesz wyników jak R1C1

=GetFormula(A1,TRUE) 
+1

+1 do sportowej rywalizacji, dobra odpowiedź. –

+0

+1 Stosowanie 'R1C1' jest lepsze, jak gdyby wszystkie formuły w wierszu (lub kolumnie) były identyczne, wystarczy porównać tylko jedną komórkę w tym zakresie. – brettdj

+0

Jesteście wielcy dzięki! – user330739

2

co chciałbym zrobić, to dosłownie przekształcić tę formułę do ciąg: '= if (A2> 1,1,0)'

Wystarczy użyć właściwości formuły w komórce, tutaj jest przykład kodu:

Range("A1").Select 
Dim strFormula As String 
strFormula = ActiveCell.Formula 
MsgBox (strFormula) 
-1

Wystarczy kliknąć prawym przyciskiem myszy na nagłówku kolumny (czyli a) i wybierz "Formatuj komórki", a następnie w zakładce "Liczba" wybierz "Tekst". Następnie w każdej komórce naciśnij enter, a zamiast wyniku pojawi się formuła.

6

Użyj funkcji FORMULATEXT. Jest wbudowany w Excel.

+0

Dobra odpowiedź, to najprostsza odpowiedź bez zewnętrznych makr. – sunil

+1

Dotyczy tylko programu Excel 2011 i nowszego – Dave2e

+0

FORMULATEXT nie jest dostępny w programie Excel 2003 – ZEE

0

Można również zastąpić znak równości z pustymi użyciu znaleźć i wymienić. W efekcie usuwa znak równości i pozostawia tylko tekst formuły jako ciąg znaków.

Powiązane problemy