اشکال در انتقال اطلاعات به فايل مرجع

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    [حل شده] اشکال در انتقال اطلاعات به فايل مرجع

    سلام،
    از صبح درگير يک مشکلي هستم!
    يک فايل مرجع براي خودم درست کرده ام و در آن کدي نوشته ام که اطلاعات را از چند فايل ديگر جمع آوري و در آن ثبت کند.
    فرض بر اين است که حداکثر 10 فايل، از شماره 1 تا 10 در پوشه اي قرار دارد.
    در فايلي به نام COL در همان پوشه اطلاعات را مي خواهم جمع کنم.

    کدهايم را جدا کرده ام تا بهتر متوجه شويد:
    در فايل COL با "ماکرو يک" تمام فايلهای 1 تا 10 (اگر فايلي به آن نام وجود داشته باشد) باز شده و خانه A1 آنها سلکت مي شود.
    حال دو مدل ماکرو نوشته ام که اطلاعات اين فايلها را به فايل COL انتقال داده و سپس فايلهاي مربوطه را ببندد.
    ولي هر کدام از ماکروها اشکال خاص خودش را دارد.
    لطفا" فايلهاي ضميمه را نگاه کنيد، در اين مثال من فقط شش فايل از 1 تا 6 تشکيل داده ام

    ماکرو يک را اجرا مي کنيم، سپس ماکرو دو را اجرا مي کنيم، اشکال اين است که اطلاعات فايل 6 را چندين بار تکرار مي کند!!! (با اينکه نوشته ام: On Error Resume Next)

    يک بار ديگر از اول اين بار با ماکرو سه امتحان مي کنيم:

    باز ماکرو يک را اجرا مي کنيم، و اين دفعه ماکرو سه را اجرا مي کنيم، همه کارها درست انجام مي شود، منتهي يک اشکال وجود دارد:
    يکي از فايلهاي 1 تا 5 را ديليت کنيد، ديگر ماکرو 3 درست عمل نمي کند! يعني اگر فايلها از شماره يک و به طور متوالي باشند مشکلي نيست، ولي اگر يک شماره آن وسط نباشد مشکل ايجاد خواهد شد.

    مي شه کمکم کنيد چکار کنم؟ نمي دانم چطور به اکسل حالي کنم که اون وسط اگر فايلي نبود بي خيالش شود!
    متشکرم
    فایل های پیوست شده
    [SIGPIC][/SIGPIC]
  • abootorab

    • 2014/10/17
    • 351

    #2
    نوشته اصلی توسط علي پارسا
    سلام،
    از صبح درگير يک مشکلي هستم!
    يک فايل مرجع براي خودم درست کرده ام و در آن کدي نوشته ام که اطلاعات را از چند فايل ديگر جمع آوري و در آن ثبت کند.
    فرض بر اين است که حداکثر 10 فايل، از شماره 1 تا 10 در پوشه اي قرار دارد.
    در فايلي به نام COL در همان پوشه اطلاعات را مي خواهم جمع کنم.

    کدهايم را جدا کرده ام تا بهتر متوجه شويد:
    در فايل COL با "ماکرو يک" تمام فايلهای 1 تا 10 (اگر فايلي به آن نام وجود داشته باشد) باز شده و خانه A1 آنها سلکت مي شود.
    حال دو مدل ماکرو نوشته ام که اطلاعات اين فايلها را به فايل COL انتقال داده و سپس فايلهاي مربوطه را ببندد.
    ولي هر کدام از ماکروها اشکال خاص خودش را دارد.
    لطفا" فايلهاي ضميمه را نگاه کنيد، در اين مثال من فقط شش فايل از 1 تا 6 تشکيل داده ام

    ماکرو يک را اجرا مي کنيم، سپس ماکرو دو را اجرا مي کنيم، اشکال اين است که اطلاعات فايل 6 را چندين بار تکرار مي کند!!! (با اينکه نوشته ام: On Error Resume Next)

    يک بار ديگر از اول اين بار با ماکرو سه امتحان مي کنيم:

    باز ماکرو يک را اجرا مي کنيم، و اين دفعه ماکرو سه را اجرا مي کنيم، همه کارها درست انجام مي شود، منتهي يک اشکال وجود دارد:
    يکي از فايلهاي 1 تا 5 را ديليت کنيد، ديگر ماکرو 3 درست عمل نمي کند! يعني اگر فايلها از شماره يک و به طور متوالي باشند مشکلي نيست، ولي اگر يک شماره آن وسط نباشد مشکل ايجاد خواهد شد.

    مي شه کمکم کنيد چکار کنم؟ نمي دانم چطور به اکسل حالي کنم که اون وسط اگر فايلي نبود بي خيالش شود!
    متشکرم

    با درود
    جناب پارسای عزیز ماکرو 3 رو به صورت زیر تغییر دهید مشکلی که فرمودین برطرف میشود.
    کد PHP:
    Sub Macro3()
    Range("A3:A12").Value ""
    Dim C As Integer
    On Error 
    GoTo EE
    1
    Do While <= 10
    If Not Dir(ActiveWorkbook.Path "\" & C & ".XLSX") = "" Then
        Windows(C & "
    .XLSX").Activate
        Selection.Copy
        Windows("
    COL.XLSM").Activate
        Sheet1.Select
        Range("
    A1").Select
        Selection.End(xlDown).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        Application.CutCopyMode = False
        Windows(C & "
    .XLSX").Close
    End If
    C = C + 1
    Loop
    Exit Sub
    EE:
    Exit Sub
    End Sub 

    کامنت

    چند لحظه..