شباهتها
از نظر نتیجه هر دو متن یکسانی رو تولید میکنن
هر دو هم در محیط اکسل هم محیط VBA قابل استفاده هستن
تفاوت (احتمالی)
یک تفاوت احتمالی وجود داره. از اون جایی که کد تابع CONCATENATE در دسترس ما نیست، میشه احتمالاً این حدس رو زد که در تابع CONCATENATE همهی مقادیر پارامترها یکباره به یکدیگر متصل میشن و یک رشتهی حاصل رو میسازن.
در صورتی که در استفاده از عملگر & برای هر دو عملوند یک بار عمل اتصال اتفاق میافته. چون عملگر & یک عملگر دوتایی هست. یعنی مثلاً اگه بخوایم نحوهی عملکرد عملگر & رو گام به گام توضیح بدیم به صورت زیر خواهد شد
a & b & c & d ==> (((a & b) & c) & d)
==> ((CONCATENATE(a, b) & c) & d)
==> (CONCATENATE(CONCATENATE(a, b), c) & d)
==> CONCATENATE(CONCATENATE(CONCATENATE(a,b), c), d)))
که یعنی سه بار تابع CONCATENATE اجرا بشه. بنابراین احتمال داره سرعت اجرای تابعی بالاتر باشه.
نکته ۱:
از نظر کاربردهای معمولی این تفاوت سرعت ممکنه چندان مهم نباشه و شاید اصولاً تفاوت سرعتی وجود نداشته باشه. بنابراین استفاده از هر کدام از این دو بستگی به راحتی شما داره.
نکتهی ۲:
استفاده از عملگر & در برگههای اکسل به دلیل خوانایی اولویت داره. اما در VBA میتونین از هر کدام از دو صورت استفاده کنین