جدا كردن اعداد از متن در اکسل

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    جدا كردن اعداد از متن در اکسل

    با كمك اين كد ميتونين اعداد رو از متن جدا كنيد يا به عبارتي متن رو از حروف پاكسازي كنيد

    مثلا:
    askl23lkjl555lkjp8poii7789 --> 23 555 8 7789

    کد:
    Function CleanString(strIn As String) As String
        Dim objRegex
        Set objRegex = CreateObject("vbscript.regexp")
        With objRegex
         .Global = True
         .Pattern = "[^\d]+"
        CleanString = .Replace(strIn, " ")
        End With
    End Function
  • mokaram
    مدير تالار اکسل و بانک اطلاعاتی

    • 2011/02/06
    • 1805
    • 74.00

    #2
    امیر خان میشه بگید چه جوری از این کد استفاده کنم
    ببخشید سواتم پایینه
    [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
    [/CENTER]

    کامنت

    • امين اسماعيلي
      مدير تالار ويژوال بيسيك

      • 2013/01/17
      • 1198
      • 84.00

      #3
      با درود

      دوست عزیز . جناب قاسمیان یه function (تابع) نوشتن . شما یه ماژول ایجاد کنید تو قسمت ویژوال Alt+F11 بعد کد ها رو اونجا کپی کنید. با این کار شما یک تابع جدید به تابع های موجود در اکسل اظافه کردین. مثل تابع های دیگه تو شیت ها اونو به کار ببرین.البته تو کد نویسی هم میشه اونو به کار برد
      در پناه خداوندگار ایران زمین باشید و پیروز

      کامنت

      • alieddy0

        • 2011/07/21
        • 141
        • 55.00

        #4
        با سلام
        با تشكر از آقا امير.بنده تابع زير رو معرفي ميكنم كه عملكردش مشابه تابع ايشونه
        کد:
        Function ExtractNumber(rCell As Range)
        Dim lCount As Long, l As Long
        Dim sText As String
        Dim lNum As String
        sText = rCell
        For lCount = Len(sText) To 1 Step -1
        If IsNumeric(Mid(sText, lCount, 1)) Then
        l = l + 1
        lNum = Mid(sText, lCount, 1) & lNum
        End If
        If l = 1 Then lNum = CInt(Mid(lNum, 1, 1))
        Next lCount
        ExtractNumber = CLng(lNum)
        End Function

        کامنت

        • ~M*E*H*D*I~
          • 2011/10/19
          • 4377
          • 70.00

          #5
          با کپی کردن توابع فوق در یک ماژول و قرار دادن عبارت public قبل از function میتونید همانند یک تابع در محیط اکسل استفاده کنید
          [CENTER]
          [SIGPIC][/SIGPIC]
          [/CENTER]

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط M_R_M
            امیر خان میشه بگید چه جوری از این کد استفاده کنم
            ببخشید سواتم پایینه
            دوستان كامل توضيح دادن ديگه من چيزي واسه گفتن ندارم

            فقط اينو بگم كه شما دو راه براي استفاده از اين تابع دارين. يكي محيط اكسل كه همونطور مهدي عزيز گفت ميتونين عين يك تابع مثل FIND يا هر تابع ديگه ازش استفاده كنيد (البته نيازي نيست كلمه Public رو قبلش اضافه كنيم، همينطوري پيشفرض عمومي هست)
            و كاربرد ديگش در كدهاي vba هست. شما ميتونين تو كدهاتون ازش استفاده كنيد. مثلا اينطوري:
            کد:
            ClearedString=CleanString(String)

            کامنت

            • علی فاطمی

              • 2014/02/17
              • 523
              • 51.00

              #7
              نوشته اصلی توسط amir ghasemiyan
              دوستان كامل توضيح دادن ديگه من چيزي واسه گفتن ندارم

              فقط اينو بگم كه شما دو راه براي استفاده از اين تابع دارين. يكي محيط اكسل كه همونطور مهدي عزيز گفت ميتونين عين يك تابع مثل FIND يا هر تابع ديگه ازش استفاده كنيد (البته نيازي نيست كلمه Public رو قبلش اضافه كنيم، همينطوري پيشفرض عمومي هست)
              و كاربرد ديگش در كدهاي vba هست. شما ميتونين تو كدهاتون ازش استفاده كنيد. مثلا اينطوري:
              کد:
              ClearedString=CleanString(String)
              جناب قاسمیان سلام و خسته نباشید ،
              موضوع قدیمیه ولی امکان برعکس این موضوع هم هست یعنی خروجی توابع فوق حروف باشند.
              ممنون از توجه شما.
              [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


              [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
              [/CENTER]

              کامنت

              • shamir

                • 2014/07/26
                • 19

                #8
                نوشته اصلی توسط amir ghasemiyan
                با كمك اين كد ميتونين اعداد رو از متن جدا كنيد يا به عبارتي متن رو از حروف پاكسازي كنيد

                مثلا:
                askl23lkjl555lkjp8poii7789 --> 23 555 8 7789

                کد:
                Function CleanString(strIn As String) As String
                    Dim objRegex
                    Set objRegex = CreateObject("vbscript.regexp")
                    With objRegex
                     .Global = True
                     .Pattern = "[^\d]+"
                    CleanString = .Replace(strIn, " ")
                    End With
                End Function
                با سلام
                امکانش هست این کد را تغییر بدید برای اینکه اعداد را حذف کند و فقط حرف بماند؟
                و یک سوال دیگه من روی یک خانه امتحان می کنم جواب می دهد ولی روی یک ستون یک جا اعمال نمی شود لطفا راهنمایی کنید
                با تشکر

                کامنت

                • امين اسماعيلي
                  مدير تالار ويژوال بيسيك

                  • 2013/01/17
                  • 1198
                  • 84.00

                  #9
                  با درود

                  از کد زیر که تابع جدیدی هستش استفاده کنید
                  کد:
                  Function StripNumber(stdText As String) 
                      Dim str As String, i As Integer 
                       'strips the number from a longer text string
                      stdText = Trim(stdText) 
                       
                      For i = 1 To Len(stdText) 
                          If Not IsNumeric(Mid(stdText, i, 1)) Then 
                              str = str & Mid(stdText, i, 1) 
                          End If 
                      Next i 
                       
                      StripNumber = str ' * 1
                       
                  End Function
                  مثل بالا همون کارها رو انجام بدین یه تابع جدید به اکسل اظافه میشه به نام
                  StripNumber
                  در پناه خداوندگار ایران زمین باشید و پیروز

                  کامنت

                  • علی فاطمی

                    • 2014/02/17
                    • 523
                    • 51.00

                    #10
                    نوشته اصلی توسط امين اسماعيلي
                    با درود

                    از کد زیر که تابع جدیدی هستش استفاده کنیدمون کارها رو انجام بدین یه تابع جدید به اکسل اظافه میشه به نام
                    StripNumber
                    استاد اسماعیلی بسیار سپاسگذارم.
                    [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


                    [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
                    [/CENTER]

                    کامنت

                    • ~M*E*H*D*I~
                      • 2011/10/19
                      • 4377
                      • 70.00

                      #11
                      فایل پیوست هم در همین خصوص هست که میتونه مفید باشه
                      فایل های پیوست شده
                      [CENTER]
                      [SIGPIC][/SIGPIC]
                      [/CENTER]

                      کامنت

                      چند لحظه..