PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزشي: حذف کردن یک یا چند محدوده در چندین کاربرگ



میثم مقدم نیا
2020/01/17, 13:06
با گروه بندی تمام برگه ها ، ردیف های مشابه یا محدوده های مختلف را حذف کنید

ردیف های مشابه را در چندین شیت اکسل حذف کنید
شاید براتون پیش اومده باشه که بخواید در بین شیت ها چندین سطر را حدف کنید
اگه تعداد شیت هاتون زیاد باشه این کار براتون خیلی خیلی سخته می‌شود که بخواید این کار را دونه دونه انجام بدید
با کدهای زیر شما می‌توانید سریعتر این محدوده‌ها را تنها با یک کلید حذف کنید

1. کلیدهای Alt + F11 را همزمان فشار دهید تا پنجرهMicrosoft Visual Basic for Applications باز شود .
2. در پنجره Microsoft Visual Basic for Applications ، روی Insert > Module کلیک کنید. سپس کد VBA زیر را کپی کرده و در پنجره Code قرار دهید.

روش اول
با این کد ردیف انتخاب شده توسط کار بر در شیت ها وارد شده در کد زیر همه حذف خواهد شد
توجه در این کد هربار یک ردیف حذف میشود


Sub DeleteRows()
Dim shtArr, i As Long, xx As Long
shtArr = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")
xx = Selection.Row
For i = LBound(shtArr) To UBound(shtArr)
Sheets(shtArr(i)).Rows(xx).EntireRow.Delete
Next i
End Sub

روش دوم
با این کد ردیف‌های 4 و5 در تمام شیت ها حذف خواهد شد که شما میتوانید آن را بنا به نیاز خود تغییر دهید
توجه داشته باشید که در این کد همه ردیف‌های 4 و 5 در تمام شیت ها حذف میشود


Sub bleh()
Dim xWs As Worksheet
Set xWs = ActiveSheet
ThisWorkbook.Worksheets.Select
Rows("3:4").Select
Selection.Delete
xWs.Select
End Sub
شما از کد زیر هم به همین منظور میتوانید استفاده کنید


Sub bleh2()
Dim ws As Worksheet
Dim wb As Workbook
Set wb = ThisWorkbook
For Each ws In wb.Worksheets
ws.Rows("1:3").Delete
Next ws
Set wb = Nothing
End Sub


دامنه های مشابه را بین چندین شیت حذف کنید

برای حذف دامنه های مشابه در چندین شیت می‌توانید از کد زیر استفاده کنید.
توجه داشته باشید که در این کد تمام ناحیه‌های پر شد در شیت فعال انتخاب شده و کار پیامی نمایش داده میشود و از کار بر میخواد که محدوده انتخاب را تایید کند یا آن را تغییر دهد و بعد تایید کند
با تایید کاربر ناحیه انتخاب شده در تمام شیت ها حذف میشود.
20376
Sub Del_Full()
Dim xRg As Range
Dim xTxt As String
Dim xWs As Worksheet
On Error Resume Next
Set xWs = ActiveSheet
If ActiveWindow.RangeSelection.Count > 1 Then
xTxt = ActiveWindow.RangeSelection.AddressLocal
Else
xTxt = ActiveSheet.UsedRange.AddressLocal
End If
Set xRg = Application.InputBox(":لطفا دامنه موردنظر براي حذف را در بين چندين برگه انتخاب کنيد", "راهنماي براي اکسل", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
xRg.ClearContents
ThisWorkbook.Worksheets.Select
ActiveWindow.SelectedSheets.FillAcrossSheets xRg, xlFillWithContents
xWs.Select
End Sub

حذف چند سطر از چندین شیت به طور همزمان

شما می‌توانید یک محدوه مشترک را با استفاده از کد زیر در شیت‌های موجود حذف کنید
در این کد محدوده A1 تا D4 انتخاب شده که شما بنا به خواسته خود اون را می‌تونید تغییر دهید
توجه داشته باشید که این کد این محدوده را در تمام شیت‌های موجود حذف می‌کند


Sub Delete_Rows()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Range("A1:D4").EntireRow.Delete
Next ws
End Sub

پاک سازی سلول ها روی شیت‌های مختلف
با این کد زیر شما می‌توانید محدود انتخابی که از سلول A1 شروع می‌شود را تا هرجای که بخواهید را حذف کنید


Sub clearcontents1()

With Sheets("Sheet1")
Range(.Cells(1, 1), .Cells(9, 6)).clearcontents
End With
With Sheets("Sheet2")
Range(.Cells(1, 1), .Cells(7, 3)).clearcontents
End With
End Sub
شما برای این کار از کد زیر هم می‌توانید استفاده کنید با این تفاوت که در این کد زیر شما می‌توانید یک محدوده مشخص شده از هر جایی که خواستید را در شیت‌های جداگانه انتخاب و حذف کنید


Sub clearcontents2()

Sheets("Sheet1").Range("A1:C9").clearcontents
Sheets("Sheet2").Range("D2:G8").clearcontents

End Sub

حذف یک محدوده مشخص و قفل کردن آن

شما با این کد زیر می‌توانید یک محدوده مشخص شده از هر جایی که خواستید را در شیت‌های پشت سر هم حذف کنید

For x = 1 To 3
در این خط عدد 1 شیت مبعد و عد 3 شیت مقصد هست که درکد زیر محدود D2 تا G8 را از شیت 1 تا 3 را حذف می کند و محدود حذف شده قفل میشود که در اینجا پسورد آن abc هست


Sub clearcontents3()

Dim x As Integer
For x = 1 To 3
With Sheets("Sheet" & x)
.Unprotect Password:="abc"
.Range("D2:G8").clearcontents
.Protect Password:="abc"
End With
Next x
Application.Goto Sheets("sheet1").Range("A1"), False

End Sub


شما با این کد می توانید چند محدوده را از هر جایی که خواستید را مشخص کنید و در شیت های جداگانه حذف کنید


Sub clearcontents4()

Sheets("Sheet1").Range("A1:C5,A8:H10").clearcontents
Sheets("Sheet2").Range("B1:C5,A7:H10").clearcontents

Sheets("Sheet3").Select

Cells(1, 1).Select

End Sub

مطالب طولانی شد بیشتر از این دیگه سرتون را درد نمیارم
با سپاس مقدم نیا

دکتر علیزاده
2021/12/08, 15:14
سلام جناب آقای مقدم نیا
واقعا خیلی پست عالی و فوق العاده ایه. هم توضیحات کامل و هم کاربردی
دستت درد نکنه. سایه عالی مستدام.

mahdie-ard
2023/02/01, 22:04
باسلام، تشکر بابت آموزش عالی شما
اگر یک جدول داشته باشیم با مثلا ۱۰۰ ردیف از محدوده a3 تا n103 . چطور ممکنه در یک سلول زمانی که یک شماره ردیف نوشته بشه با استفاده از کد نویسی ردیف اون شما پاک بشه؟