شناسایی آخرین ردیف اطلاعات

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

  • shamsololama
    پاسخ داد
    RE: شناسایی آخرین ردیف اطلاعات

    نوشته اصلی توسط 4017
    نوشته اصلی توسط shamsololama
    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آ---ین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آ---ین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم
    سلام
    من اين كد رو عينا وارد كردم اما انجام نميشه
    ارور for without next ميده
    ميشه راهنمايي كنيد؟
    با دورد فراوان
    اگر کد را دقیقا همون چیزی که نوشته را در اکسل کپی کرده باشی اجرا نخواهد شد
    چون Next برای حلقه C و End if از قلم افتاده که اگر آن را بنویسید ماکر اجرا خواهد شد .
    بهتر است که متغییر ها نیز تعریف کنیم چون اگر در بالا صفحه Option Explicit نوشته شده باشد تعریف متغییر ها اجباری خواهد بود وگرنه ارور می گیرد
    کد به این صورت
    Sub Macro3()
    Dim c
    Dim i
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub
    End If
    Next
    End Sub

    Leave a comment:


  • 4017
    پاسخ داد
    RE: شناسایی آخرین ردیف اطلاعات

    نوشته اصلی توسط shamsololama
    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آ---ین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آ---ین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم
    سلام
    من اين كد رو عينا وارد كردم اما انجام نميشه
    ارور for without next ميده
    ميشه راهنمايي كنيد؟

    Leave a comment:


  • mrexcel
    پاسخ داد
    RE: شناسایی آخرین ردیف اطلاعات

    يك راهي هست كه من براي رفتن به آخرين رديف هميشه از ان استفاده ميكنم ان اين هست
    range(a1).end(xldown().offset(1,0).select
    البته ان قسمتي كه بايد اطلاعات كپي بشه و به صفحه ديگر برود نيز بايد اضافه بشه

    Leave a comment:


  • m_d6712
    پاسخ داد
    RE: شناسایی آخرین ردیف اطلاعات

    نوشته اصلی توسط shamsololama
    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آخرین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آخرین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم
    با تشکر از دوست عزیز!
    این روش خوبی است! اما در تعداد سطر بالا مشکل ایجاد خواهد کرد. به نظر من اگر آخرین فیلد رو در متغیری مخفی یا سلولی مخفی نگه داری کنیم راحت تر می باشد و Cpu نیز کمتر اشغال می شود. شما تصور کنید که 10000 رکورد دارین! در این شرایط با ازای هر سطر که اضافه بشه 10000 بار تست خالی بودن فیلد می کنیم! اما اگر آخرین شماره آخرین سطر را ذخیره کنیم این مشکل بوجود نمی آید.

    Leave a comment:


  • shamsololama
    پاسخ داد
    RE: شناسایی آخرین ردیف اطلاعات

    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آخرین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آخرین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم

    Leave a comment:


  • Almasi
    پاسخ داد
    RE: شناسایی آخرین ردیف اطلاعات

    با سلام
    شما می تونید با دستور زیر به یک سطر پائین تر از آخرین رکورد درج شدخ رفته و نهایتاً اطلاعات را پیست نمائید .
    ([Range("h4:h65000").End(xlDown).Offset([1], [0

    Leave a comment:


  • amator
    یک موضوع ایجاد کرد شناسایی آخرین ردیف اطلاعات

    شناسایی آخرین ردیف اطلاعات

    سلام
    یک سوال دارم
    جداولی داریم که مثلا در شیت1 قرار دارند و در شیت 2 یک فرم طراحی کرده ایم که کاربر ما اطلاعات خواسته شده را بدون اشتباه(توسط محدودیت هایی که ایجاد کرده ایم) وارد نماید. و یک کلید ذخیره قرار داده ایم که با زدن آن یک ماکرو فعال شده و این سطر اطلاعات را کات کرده و میبرد در شیت 1 ذخیره میکند. حال سوال اینجاست که این ماکرو را چگونه باید تعریف کرد که این اطلاعات را ببرد و در آخرین ردیف قرار دهد؟
    متشکرم
چند لحظه..