PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [حل شده] توانایی خواندن کلمه فارسی.....



hamid_rm
2016/01/30, 15:19
با سلام به دوستان عزیز
من یک مشکلی دارم با فهمیدن کلمه "خارجی" در VB. میخوام در یک کد IF شرطم این باشه که اگر مقدار TextBox مخالف "خارجی" بود فلان دستور رو اجرا کن. اما هرجور که شده امتحان کردم به هیچ شکلی این کلمه رو نمیفهمه. بازم میره تو شرط.
لطفاً بفرمایید با این کلمه خارجی چی کار کنم.

shamsololama
2016/01/30, 15:26
با درود فراوان
این کلمه خارجی به ی آخرش توجه کن چون ی که در تکست باکس می نویسی و ی که در کلمه خارجی هست با هم فرق میکنه در نتیجه این دو کلمه با هم شبیه نیستند و شرط با مشکل مواجه میشه یکی از ی ها فارسی و یکی عربی هست این دو تا ی اگر در تکست باکس و کلمه خارجی شبیه به هم بنویسی درست عمل میکنه

یه را حل هم اینه که این کلمه خارجی رو در یک لیبل یا یک سل بنویسی و این لیبل یا سل را در شرط بکار ببری تا کلمه خارجی مستقیم در شرط نوشته نشه

if Textbox1.text=Label1.caption then

hamid_rm
2016/01/30, 16:40
دوست گرامی ممنون از پاسخ سریعتون.
من قبلاً یک بار یک TXTbox ایجاد کردم و اون تو "خارجی" نوشتم اما باز هم کار نکرد مثل همین لیبل که شما فرمودید. اینجوری هم کار نکرد. فونت سلول رو هم "Arial" کردم اما بازم نفهمید. الآن توسط txtlength که از Ptoperty های Txtbox هست، تونستم تا حدی این مشکل رو کنترل کنم اونم به این شکل که اگر طول TXT مساوی 5 بود شرط رو اجرا نمیکنه. کلمه "خارجی" 5 کاراکتر هست.
اما هروقت از قبل قبل یا بعدش یک کاراکتر خالی باشه ( Space ) این کلک عمل نمیکنه و لازم میشه که کلمه خارجی رو بشناسه. که نمیشناسه.......
راستی من علامت نامساوی رو در شرط، طبق روال قدیما به این شکل "<>" مینویسم. در ماکروی اکسل هم همینطوری مینویسید دیگه ؟؟

iranweld
2016/01/30, 20:18
با سلام

ماکرو ذیل را تست بفرمایید
در تکست باکس موجود در صورت تایپ کلمه "خارجی" یا "خارجي" توسط ماکرو قابل تشخیص میباشد


Sub test()

If UserForm1.TextBox1.Value = ChrW(1582) & ChrW(1575) & ChrW(1585) & ChrW(1580) _
& ChrW(1740) Or UserForm1.TextBox1.Value = ChrW(1582) & ChrW(1575) & ChrW(1585) & ChrW(1580) & ChrW(1610) Then

MsgBox "ok"

End If

End Sub

shamsololama
2016/01/31, 08:41
دوست گرامی ممنون از پاسخ سریعتون.
من قبلاً یک بار یک TXTbox ایجاد کردم و اون تو "خارجی" نوشتم اما باز هم کار نکرد مثل همین لیبل که شما فرمودید. اینجوری هم کار نکرد. فونت سلول رو هم "Arial" کردم اما بازم نفهمید. الآن توسط txtlength که از Ptoperty های Txtbox هست، تونستم تا حدی این مشکل رو کنترل کنم اونم به این شکل که اگر طول TXT مساوی 5 بود شرط رو اجرا نمیکنه. کلمه "خارجی" 5 کاراکتر هست.
اما هروقت از قبل قبل یا بعدش یک کاراکتر خالی باشه ( Space ) این کلک عمل نمیکنه و لازم میشه که کلمه خارجی رو بشناسه. که نمیشناسه.......
راستی من علامت نامساوی رو در شرط، طبق روال قدیما به این شکل "<>" مینویسم. در ماکروی اکسل هم همینطوری مینویسید دیگه ؟؟


با درود فراوان

برای نامساوی بله به همین صورت هست و در مورد خارجی قبل و یا بعد اگر اسپیس خوره باشه با تابع تریم می تونی آن رو حذف کنی ولی راه حل دقیق تر همین راه حلی هست که دوست خوبم با تابع Chew برات نوشته یا به همین ترتیب تو شرط با or هردو کلمه خارجی و
خارجي را جزء شرط قرار بده


if Textbox1.text="خارجی" or Textbox1.text="خارجي" Then

hamid_rm
2016/01/31, 09:26
ممنون دوستان
جناب Iranweld عزیز این کد اسکی رو هم دیروز از همین سایت ( البته به شکل دیگری بود) پیدا کردم ولی بازم جواب نداد. فعلاً با Trim کلمه خارجی و طول حروف مشکل روتحت کنترل درآوردم.
الآن نمیدونم چرا توی یکی از شیتهام که داره اطلاعات توی اونها ذخیره میشه یکیشون فونت اعداد فارسیه اما توی شیت یک اعداد انگلیسیه. چطور اینو درست کنم؟ البته در هر دوی اونها این کد رو نوشتمها ... اما یکیش جواب میده یکیش نمیده.
sheet1.Columns.Font.Name = "B_nazanin"
فکر کردم شاید بخاطر اینه من نمیتونم ستون مورد نظر رو بهش معرفی کنم.