ساخت ديتابيس به كمك اكسل

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

    • 2014/01/14
    • 55

    ساخت ديتابيس به كمك اكسل

    سلام بر اساتيد گرامي!
    در فايل پيوست extractor.xlsx, متغيير هاي من نام، نام خانوادگي و دانشگاه هستند. اگر در شيت Data دقت كنيد متغييرهايي ديگري مانند شغل هم داريم كه اونا به درد من نمي خورند. ميخوام به اكسل بگم كه هرجا اين متغييرها رو ديدي، مقدار جلوي اونو جدا كن و به شيت بعدي منتقل كن و يك ديتابيس اونجا بساز! خوشبختانه تمام متغييرام جلوشون علامت ":" هست. با چه ماكرويي بايد اين كار رو كرد؟
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

    یک ماکرو اولیه برای شما تهیه گردید

    کد PHP:
    Sub test()

    On Error Resume Next

    2

    Z1 
    Application.WorksheetFunction.CountA(Sheet1.Range("1:1"))

    For 
    1 To Z1

    Z2 
    Sheet1.Cells(Sheet1.Rows.CountJ).End(xlUp).Row

    For 1 To Z2

    xx 
    Cells(iJ)
    ZZ Cells(iJ).Offset(10)



    yy InStr(1xx"Material Name:")

    If 
    yy >= 1 Then

    Sheet2
    .Range("A" K) = 1

    Sheet2
    .Range("B" K) = Right(xxLen(Cells(iJ)) - 15)

    Sheet2.Range("C" K) = Right(ZZLen(ZZ) - 12)

    1

    Exit For

    End If

    Next

    Next


    End Sub 
    فایل های پیوست شده

    کامنت

    • afshin3a

      • 2014/01/14
      • 55

      #3
      بسيار ممنون از پاسختون و وقتي كه گذاشتين.. مشكل من هم همينه. بعضي جاها متغييرها پشت سر هم نيستن.

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        با سلام
        در فایل جدید مشکل برطرف شد

        کد PHP:
        Sub test()

        Macro1

        On Error Resume Next

        2

        z1 
        Application.WorksheetFunction.CountA(Sheet1.Range("1:1"))


        For 
        1 To z1

        Z2 
        Sheet1.Cells(Sheet1.Rows.CountJ).End(xlUp).Row

        For 1 To Z2

        xx 
        Cells(iJ)
        zz Cells(iJ).Offset(10)



        yy InStr(1xx"Material Name:")

        If 
        yy >= 1 Then

        Sheet2
        .Range("A" K) = 1

        Sheet2
        .Range("B" K) = Right(xxLen(Cells(iJ)) - 15)

        End If


        yy InStr(1xx"Trade Name:")

        If 
        yy >= 1 Then

        Sheet2
        .Range("C" K) = Right(xxLen(xx) - 12)

        1

        Exit For

        End If

        Next

        Next

        Sheet2
        .Select

        End Sub 
        فایل های پیوست شده

        کامنت

        چند لحظه..