نوشته اصلی توسط
bnyamin
فکر کنم مشکل حاد تر از این حرفهاست !!!
اگه یک ی معمولی رو در vba بخواهیم درج کنیم چکار باید کرد ؟
چون وقتی ی معمولی (d) رو میخواهیم درج کنیم در vba ی می آید که در زیر آن دو نقطه هست و هنگامی هم از کپی ی معمولی استفاده می کنیم vba اونو بصورت علامت سوال شناسایی میکنه !!!
نتیجه اخلاقی که vba بدجوری با ی معمولی مشکل داره !
همانطور که در لينک ياد شده هم در جايي اشاره کرده ام ظاهرا" vba از سيستم کد دهي unicode پشتيباني نمي کند، به همين خاطر کاراکترهايي که فقط به صورت unicode تعريف شده اند را اگر وارد محيط vba نماييم براي آن ناشناخته مي باشند.
آن ى که روي صفحه کليد شما روي دگمه d انگليسي تعريف شده لزوما" ى معمولي نيست! شما مي توانيد با نرم افزارهاي مخصوص صفحه کليد يک ى ديگر براي آن دگمه تعريف کنيد.
الآن آن ى که روي صفحه کليد شما تعريف شده همان ى است که فقط تحت unicode تعريف شده اگر آن را در صفحه اکسل با تابع CODE بررسي کنيد کد 63 خواهد داد، کد 63 مخصوص تمام کاراکترهاي ناشناخته براي اکسل است (يعني همان حروفي که فقط تحت unicode نوشته شده اند) و اگر در VBA از آن استفاده کنيد علامت سوال خواهد داد (يعني ناشناخته)
فعلا" تنها کاري که من توانستم انجام دهم اين است:
جستجو از طريق FIND AND REPLACE اين کاراکترهاي يونيکدي را تشخيص مي دهد و مي توانيد توسط آن ى هاي با کد 63 که قبلا" وارد شده را تعويض کنيد، سپس توسط کدهايي که در لينک مورد اشاره ياد شده ترتيبي دهيد که دو مدل ى ديگر وقتي فايل را باز مي کنيد خود به خود يکسان سازي شوند (يعني يکي از ى ها به ديگري تبديل و همه يکسان شوند)
ى روي صفحه کليد خود را با استفاده از نرم افزار ها به يک ى ديگر (غير از ى با کد 63) تغيير دهيد (يا بگرديد ببينيد اگر احتمالا" يک ى ديگر جايي روي صفحه کليد تعريف شده باشد از آن استفاده کنيد)
در نهايت اگر فايل توسط چند کاربر روي چند کامپيوتر استفاده مي گردد مي توان کد نويسي انجام داد که ابتداي باز شدن فايل از کاربر بخواهد حرف ى و ک را در يک ليست باکس وارد کند (زيرا حرف ک هم همانطور که آقا ميثم اشاره کرده اند مشکل ساز است)، سپس با تابع CODE کد حروف تايپ شده را به دست آورد و اگر کد ياد شده 63 بود به کاربر اخطار دهد که صفحه کليدش مناسب براي ورود يا جستجوي اطلاعات نيست و مثلا" فايل را ببندد.
علاقه مندی ها (Bookmarks)