PDA

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



em@d
2021/02/21, 10:56
با سلام و احترام

چطور میتونم از طریق ماکرو نام های دو ردیف رو با هم تعویض کنم

چون تعداد نام ها زیاده و در Sheet های مختلف پراکنده هستند حتماً باید از دستور Replace روی Workbook استفاده بشه

مثلاً در نمونه زیر میخوام نام های فارسی رو با مشابه انگلیسی تعویض کنم.

22407

generalsamad
2021/02/21, 11:09
با سلام
شما یک مرجع از اسامی فارسی و انگلیسی دارید؟
مثلا فارسی ها توی یک ستون و انگلیسی ها توی ستون دیگر و متناظر با هر سطر میخواهید اسامی فارسی در تمامی شیت ها جایگزین اسامی انگلیسی شود؟

em@d
2021/02/21, 12:41
با سلام
شما یک مرجع از اسامی فارسی و انگلیسی دارید؟
مثلا فارسی ها توی یک ستون و انگلیسی ها توی ستون دیگر و متناظر با هر سطر میخواهید اسامی فارسی در تمامی شیت ها جایگزین اسامی انگلیسی شود؟
بله دقیقاً

generalsamad
2021/02/21, 18:28
با سلام
شیت 2 و 3 این فایل را امتحان کنید ببینید همین مد نظر هست؟

فایل ضمیمه گردید

em@d
2021/02/21, 21:20
با سلام
شیت 2 و 3 این فایل را امتحان کنید ببینید همین مد نظر هست؟

فایل ضمیمه گردید

بله البته به صورت برعکس یعنی نامهای انگلیسی جایگزین نامهای فارسی بشن

generalsamad
2021/02/21, 22:25
کافیه جای ستونها را عوض کنید
طبق فایل ضمیمه شده قبلی اینطور تغییر میکند

Sub replaces()
Dim Lr As Integer
Lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Lr
Application.DisplayAlerts = False
Cells.Replace What:=Sheet1.Range("B" & i), Replacement:=Sheet1.Range("A" & i), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next i
End Sub

majid_mx4
2021/02/22, 06:54
با سلام
با سپاس فراوان از جناب آقای generalsamad
(https://forum.exceliran.com/member.php/16027-generalsamad)دستورات زیر برگرفته شده از کد جناب آقای generalsamad (https://forum.exceliran.com/member.php/16027-generalsamad)
با این تفاوت که به کلیه شیت ها اعمال میشود (طبق درخواست شما )


Sub replaces2()
Dim Lr As Integer
Lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Lr
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets

Application.DisplayAlerts = False
If sh.Name <> "Sheet1" Then
sh.Cells.Replace What:=Sheet1.Range("A" & i), Replacement:=Sheet1.Range("B" & i), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
Next

Next i

End Sub



پایدار باشید میر

em@d
2021/02/22, 11:21
سپاسگزارم از هر دو بزرگوار، با تغییر مقادیر ستون در این کدها مشکل حل شد