فروشگاه
انبارداری پیشرفته تحت اکسل

حذف سطر خالی جدول اکسل با کد vba

آموزش بسیار کاربردی اکسل حذف سطر خالی جدول اکسل با کد vba یکی از پرکاربردی ترین کد های VBA می باشد توی این آموزش رایگان اکسل برای شما به صورت کامل نحوه حذف سطر خالی جدول اکسل آموزش میدهیم پس با آکادمی روح الله همراه باشید

برای این منظور میتوانید با استفاده از کد VBA یک سطر خالی را از جدول حذف کنید. در زیر یک مثال از چگونگی انجام این کار آمده است:

فرض کنید که شما یک ورک‌شیت دارید به نام “Sheet1” و در آن یک جدول با نام “Table1” قرار دارد. می‌خواهید یک سطر خالی از این جدول حذف شود. در اینجا کدی که این کار را انجام می‌دهد آمده است

حذف سطر خالی جدول اکسل با کد vba

برای استفاده از این کد، می‌توانید به این صورت عمل کنید:

  1. باز کردن ویرایشگر کد VBA با فشار دادن ALT + F11 در اکسل.
  2. از قسمت “Insert” گزینه “Module” را انتخاب کنید تا یک ماژول جدید ایجاد شود.
  3. کد فوق را در ماژول جدید قرار داده و آن را ذخیره کنید.
  4. کد را اجرا کنید با انتخاب ماژول در محیط ویرایشگر و فشردن F5 یا اجرای دستورات مناسب برای اجرای کد.
پیش نهاد آکادمی روح الله برای شما :
رمز گذاری روی سلول های اکسل

لطفاً توجه داشته باشید که قبل از اجرای کدهای VBA بر روی فایل‌های خود، تهیه نسخه پشتیبان از آنها را فراموش نکنید، زیرا اشتباه در کدگذاری ممکن است باعث مشکلات در فایل شود.

میانگین رتبه 5/5 تعداد رای : 2
اکسل را حرفه ای یاد بگیر
نظر شما در مورد این مقاله چیست؟

نظر یا سوال شما در این مورد چیست؟

سلام دوست عزیز خوشحال میشوم نظر شما را در مورد این مقاله بدانم 👇

    علی

    سلام بسیار عالی ، بیان شیوا و و روان

    پاسخ

      سلام
      خیلی ممنون از لطف و انرژی مثبتتون. خوشحالم که مطالب براتون مفید بوده. 🙏
      همیشه موفق و سربلند باشید. 🌟

      پاسخ
    ایمان نصر

    درود و عرض ادب خدمت شما
    بسیار عالی
    من اخیرا با پیج شما آشنا شدم و بسیار آموزش های شما را دوست دارم.
    در خصوص این آموزش یک سوال داشتم: بعد از اجرای ماکرو، عموما امکان آندو وجود نداره مگر بلافاصله فایل را بدون ذخیره ببندیم و مجددا باز کنیم. آیا راهی وجود داره که بدون این کار ماکروی اجرا شده را آندو کنیم. مصلا در همین آموزش سطرهای حذف شده را باز گردانیم؟
    سپاسگزارم

    پاسخ

      سلام ارادت خدمت شما دوست عزیز خوشحال هستم که برای شما هم اموزش ها کاربردی بوده بابت ارسال نظر تون هم سپاس گذارم
      در اکسل، اجرای ماکروها به صورت پیش‌فرض قابلیت **Undo** (بازگشت به حالت قبل) را غیرفعال می‌کند، چرا که VBA مستقیماً تغییراتی در فایل اعمال می‌کند و این تغییرات در تاریخچه Undo اکسل ثبت نمی‌شود. با این حال، می‌توان با استفاده از تکنیک‌هایی، عملکردی مشابه Undo را برای ماکروها پیاده‌سازی کرد.

      راه‌حل‌ها برای بازگرداندن سطرهای حذف شده:
      1. ذخیره نسخه پشتیبان قبل از اجرای ماکرو
      پیش از اجرای ماکرو، از داده‌ها نسخه‌ای پشتیبان تهیه کنید. برای این کار، می‌توانید کل داده‌های موجود در شیت را در یک شیت یا فایل دیگر کپی کنید. اگر نیاز به بازگرداندن داده‌ها باشد، نسخه پشتیبان را جایگزین کنید.

      کد نمونه برای ذخیره نسخه پشتیبان:

      Sub BackupBeforeDelete()
      Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
      ActiveSheet.Name = "Backup_" & Format(Now, "hhmmss")
      End Sub

      2. ذخیره اطلاعات سطرهای حذف‌شده در حافظه (آرایه یا شیت دیگر)
      سطرهایی که حذف می‌شوند را قبل از حذف، در یک آرایه یا شیت دیگر ذخیره کنید. در صورت نیاز می‌توانید از این اطلاعات برای بازگرداندن داده‌ها استفاده کنید.

      کد نمونه برای ذخیره سطرهای حذف‌شده:

      Sub DeleteRowsWithUndo()
      Dim ws As Worksheet
      Dim rng As Range, cell As Range
      Dim deletedRows As Collection
      Dim rowData As Variant
      Dim lastRow As Long

      Set ws = ThisWorkbook.Sheets("Sheet1")
      lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
      Set deletedRows = New Collection

      ' بررسی و حذف سطرهای خالی
      For Each cell In ws.Range("A1:A" & lastRow)
      If Trim(cell.Value) = "" Then
      rowData = ws.Rows(cell.Row).Value
      deletedRows.Add rowData
      ws.Rows(cell.Row).Delete
      End If
      Next cell

      ' ذخیره سطرهای حذف‌شده در یک شیت دیگر (اختیاری)
      Dim backupSheet As Worksheet
      On Error Resume Next
      Set backupSheet = ThisWorkbook.Sheets("DeletedRows")
      On Error GoTo 0
      If backupSheet Is Nothing Then
      Set backupSheet = ThisWorkbook.Sheets.Add
      backupSheet.Name = "DeletedRows"
      End If
      backupSheet.Cells.Clear
      Dim i As Long
      For i = 1 To deletedRows.Count
      backupSheet.Rows(i).Value = deletedRows(i)
      Next i
      End Sub

      3. استفاده از کد Revert برای بازگرداندن سطرهای حذف‌شده
      در ترکیب با تکنیک بالا، می‌توانید کدی برای بازگرداندن داده‌ها از شیت یا آرایه پشتیبان بنویسید.

      کد بازگرداندن:

      Sub RevertDeletedRows()
      Dim ws As Worksheet
      Dim backupSheet As Worksheet
      Dim lastRow As Long

      Set ws = ThisWorkbook.Sheets("Sheet1")
      Set backupSheet = ThisWorkbook.Sheets("DeletedRows")
      lastRow = backupSheet.Cells(backupSheet.Rows.Count, 1).End(xlUp).Row

      ' کپی سطرهای پشتیبان به شیت اصلی
      backupSheet.Rows("1:" & lastRow).Copy
      ws.Rows(1).Insert Shift:=xlDown
      End Sub

      نکات مهم:
      – اگر داده‌های شما پیچیده و حساس هستند، قبل از اعمال هر ماکرو، حتماً از کل فایل نسخه پشتیبان تهیه کنید.
      – برای ماکروهای پیشرفته می‌توانید از ساختارهای ذخیره داده مانند **Dictionary** یا **Collection** استفاده کنید.
      – همیشه راهنمایی‌هایی در برنامه ارائه دهید تا کاربر بداند در صورت اشتباه، چگونه داده‌ها را بازیابی کند.

      در صورت نیاز به توضیحات بیشتر، خوشحال می‌شوم راهنمایی کنم! 😊

      پاسخ
        ایمان نصر

        درود بر شما
        بسیار عالی و کامل.
        سپاسگزارم

        پاسخ

          سلام ارادت خدمت شما دوست عزیز

          خیلی خوشحالم که براتون مفید بود. هر زمان سوال یا مشکلی داشتید، در خدمتم.

          موفق و سربلند باشید! 🙏

          پاسخ