Comment puis-je construire la chaîne suivante dans une formule Excel:
Maurice "La fusée" Richard
Si j'utilise des guillemets simples, c'est trivial = "Maurice 'The Rocket' Richard"
mais qu'en est-il des guillemets doubles?
Comment puis-je construire la chaîne suivante dans une formule Excel:
Maurice "La fusée" Richard
Si j'utilise des guillemets simples, c'est trivial = "Maurice 'The Rocket' Richard"
mais qu'en est-il des guillemets doubles?
Réponses:
Alternativement, vous pouvez utiliser la CHAR
fonction:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
d'un guillemet double juste avant ou juste après l'esperluette n'a pas fonctionné en utilisant la méthode du guillemet double.
Trois guillemets doubles: " " " x " " "
= "x"
Excel passera automatiquement à un guillemet double. par exemple:
=CONCATENATE("""x"""," hi")
= "x" salut
J'utilise une fonction pour cela (si le classeur a déjà VBA).
Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function
Il s'agit du livre de Sue Mosher "Microsoft Outlook Programming". Alors votre formule serait:
="Maurice "&Quote("Rocket")&" Richard"
C'est similaire à ce que Dave DuPlantis a publié.
Si vous devez le faire avec JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
cela fonctionnera-t-il pour les macros en utilisant .Formula = "=THEFORMULAFUNCTION("STUFF")"
ce serait comme: cela fonctionnera-t-il pour les macros en utilisant.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
Le retour d'une chaîne vide ou de longueur nulle (par exemple ""
) pour faire apparaître une cellule vide est une pratique courante dans une formule de feuille de calcul, mais recréer cette option lors de l'insertion de la formule via la propriété Range.Formula ou Range.FormulaR1C1 dans VBA est difficile à manier en raison de la nécessité d'avoir à doubler les caractères entre guillemets dans une chaîne entre guillemets.
La fonction TEXT native de la feuille de calcul peut produire le même résultat sans utiliser de guillemets.
'formula to insert into C1 - =IF(A1<>"", B1, "")
range("C1").formula = "=IF(A1<>"""", B1, """")" '<~quote chars doubled up
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))" '<~with TEXT(,) instead
À mon avis, utiliser TEXT(,)
à la place de ""
nettoie même une formule simple comme celle ci-dessus. Les avantages deviennent de plus en plus importants lorsqu'ils sont utilisés dans des formules plus compliquées comme la pratique consistant à ajouter une chaîne vide à un VLOOKUP pour éviter de retourner un zéro à la cellule lorsqu'une recherche aboutit à un blanc ou à retourner une chaîne vide en cas de non-correspondance avec IFERROR .
'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "")
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")"
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))"
En TEXT(,)
remplaçant l'ancienne ""
méthode de livraison d'une chaîne vide, vous pourriez cesser d'utiliser un boulier pour déterminer si vous avez le bon nombre de caractères de guillemet dans une chaîne de formule.
Fonction VBA
1) .Formula = "=" "THEFORMULAFUNCTION" "& (CHAR (34) &" "STUFF" "& CHAR (34))"
2) .Formula = "THEFORMULAFUNCTION" "STUFF" ""
La première méthode utilise vba pour écrire une formule dans une cellule qui donne la valeur calculée:
THEFORMULAFUNCTION "STUFF"
La deuxième méthode utilise vba pour écrire une chaîne dans une cellule qui donne la valeur:
THEFORMULAFUNCTION "STUFF"
Résultat / formule Excel
1) = "THEFORMULAFUNCTION" & (CHAR (34) & "STUFF" & CHAR (34))
2) LA "FONCTION" DE LA FORMULAFUNCTION
="Maurice "&"""TheRocker"""&" Richard"
Il existe une autre manière, mais plus pour "Comment puis-je construire la chaîne suivante dans une formule Excel:" Maurice "The Rocket" Richard "" que "Comment créer des chaînes contenant des guillemets doubles dans les formules Excel?", Qui consiste simplement à utiliser deux guillemets simples:
À gauche, Calibri est extrait d'une feuille de calcul Excel et à droite, un extrait d'une fenêtre VBA. À mon avis, s'échapper, comme mentionné par @YonahW, gagne `` haut la main '', mais deux guillemets simples ne tapent pas plus que deux doubles et la différence est raisonnablement apparente dans VBA sans touches supplémentaires tandis que, potentiellement, n'est pas perceptible dans une feuille de calcul.
""
Peut-être que c'est juste parce que j'ai Mac Excel 2011