كيفية إنشاء سلاسل تحتوي على علامات اقتباس مزدوجة في صيغ Excel؟



Answers

بدلاً من ذلك ، يمكنك استخدام الدالة CHAR :

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
Question

كيف يمكنني إنشاء السلسلة التالية في صيغة Excel:

موريس "الصاروخ" ريتشارد

إذا كنت أستخدم اقتباسًا منفردًا ، فهذا أمر تافه = "Maurice 'The Rocket' Richard" ولكن ماذا عن علامات الاقتباس المزدوجة؟




إرجاع سلسلة فارغة أو ذات طول صفري (مثل "" ) لجعل الخلية تبدو فارغة هي ممارسة شائعة في صيغة ورقة العمل ولكن إعادة إنشاء هذا الخيار عند إدراج الصيغة من خلال خاصية Range.FormulaR1C1 أو Range.FormulaR1C1 في VBA غير عملي بسبب إلى ضرورة تضاعف حروف الاقتباس المزدوجة داخل سلسلة مقتبسة.

يمكن لوظيفة TEXT الأصلية في ورقة العمل إنتاج نفس النتيجة دون استخدام علامات اقتباس.

'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

إلى عيني ، استخدام TEXT(,) بدلاً من "" ينظف حتى صيغة بسيطة مثل واحد أعلاه. تصبح الفوائد ذات أهمية متزايدة عند استخدامها في صيغ أكثر تعقيدًا مثل ممارسة إلحاق سلسلة فارغة إلى VLOOKUP لتجنب إرجاع صفر إلى الخلية عندما ينتج عن البحث فراغ أو إرجاع سلسلة فارغة في حالة عدم تطابق مع 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(,))"

باستخدام TEXT(,) استبدال الأسلوب "" القديم من تسليم سلسلة فارغة ، قد تحصل على التوقف عن استخدام المعداد لتحديد ما إذا كان لديك العدد الصحيح من حروف الاقتباس في سلسلة صيغة.




يمكنني استخدام دالة لهذا (إذا كان المصنف يحتوي بالفعل على VBA).

Function Quote(inputText As String) As String
  Quote = Chr(34) & inputText & Chr(34)
End Function

هذا من كتاب سو موشر "Microsoft Outlook Programming". ثم ستكون الصيغة الخاصة بك:

="Maurice "&Quote("Rocket")&" Richard"

هذا مشابه لما نشره Dave DuPlantis .




تسلسل "كخلية جسيمية:

    A |   B   | C | D
1   " | text  | " | =CONCATENATE(A1; B1; C1);

D1 displays "text"



="Maurice "&"""TheRocker"""&" Richard"



استخدم chr (34) الرمز: Joe = "مرحبًا ،" & Chr (34) & "Joe" & Chr (34) ActiveCell.Value = Joe

النتيجة: مرحبًا ، "جو"




Related