La conversion d'une cellule de formule du texte à l'aide d'excel vba
Je suis en train d'écrire une macro dans Excel2003 pour trouver toutes les cellules contenant des formules dans un classeur et de la sortie de leur adresse et de la formule dans un couple de colonnes sur une autre feuille.
Je sais que je peux montrer la formule d'une cellule individuelle à l'aide de
Public Function ShowFormula(cell As Range) As String
ShowFormula = cell.Formula
End Function
qui fonctionne très bien, mais depuis que je ne voulais pas avoir à trouver toutes les cellules à la main, j'ai écrit la macro suivante pour tous les trouver pour moi
Sub Macro2()
Dim i As Integer
Dim targetCells As Range
Dim cell As Range
Dim referenceRange As Range
Dim thisSheet As Worksheet
Set referenceRange = ActiveSheet.Range("CA1")
With referenceRange
For Each thisSheet In ThisWorkbook.Sheets
If thisSheet.Index >= referenceRange.Parent.Index Then
Set targetCells = thisSheet.Cells.SpecialCells(xlCellTypeFormulas, 23)
For Each cell In targetCells
If cell.HasFormula Then
.Offset(i, 0).Value = thisSheet.Name
.Offset(i, 1).Value = cell.Address
.Offset(i, 2).Value = CStr(cell.Formula)
i = i + 1
End If
Next
End If
Next
End With
End Sub
Il trouve toutes les cellules, mais au lieu d'afficher la formule sous forme de texte, la liste affiche les résultats de la formule.
Ce qui me manque à la sortie les formules sous forme de texte plutôt que des formules?
OriginalL'auteur yu_ominae | 2012-12-04
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Aussi, cela va rendre les choses un peu plus rapidement. Au lieu de
essayer
'=A1+B2+C3+...
. Je prévois de brancher ces formules de nouveau dans les différentes cellules plus tard, et cela nécessitera la suppression de la"". Est-il un moyen de le faire sans forcer un format de texte? Je me demande vraiment pourquoi il fonctionne avec l'UDF et pas à l'intérieur de la macro...?La suppression de la "" est trivial
Right(s, Len(s) - 1)
mais je prends votre point de vue. Vous pouvez essayer le réglage du format de la cellule de destination de Texte avant de coller le non modifiée de la formule et de voir comment ça se passe.Mise en forme de texte ne fait que tromper. Tellement simple, et pourtant il n'a pas eu lieu pour moi 🙁 merci Beaucoup!
OriginalL'auteur Dale M