سلام
من یک فایل دارم که در ردیف یالای آن یک سری داده هست که یکی در میان عدد 120 در آن تکرار میشه. ( شکل 1 )
قصد دارم این اعداد 120 را در همه این 1900 ستون تک ردیفه حذف کنم.
راهی که می رم اینه، میام ردیف ها را یکی در میان با گرفتن دکمه ctrl همزمان انتخاب می کنم. ( شکل 2 )
بعدش با اضافه کردن دکمه حذف ستون اتخابی در منوی بالا ، ردیف های انتخابی را حذف می کنم.( شکل 3 )
نتیجه کار شکل 4 خواهد بود.
***********************
سوالم اینه که آیا دستوری هست که بنویسیم در قسمت Insert function که بیاد آدرس خونه اول و آخری که می خوایم حذف بشه را بگیره و بگیم :
از a تا n هر چی ستون فرد هست را برای ما حذف کن.
شدنی هست این کار ؟ ( درواقع اینجوری دیگه نمی خواد دونه دونه سلول ها را انتخاب کنیم)

عرض کردم .. تا اونجا که من میدونم تامین مورد منظور شما فقط در دامان کدها هست ..!
آقا مشکل حل شد..gif)
راه حل جهت آشنایی دوستان :
در آفیس 2007 هم می توان با فشردن همزمان Alt+F11 وارد محیط برنامه نویسی شد.
پس از آن از منوی Insert روی MODULE کلیک کرده تا پنجره نوشتن کدها باز شود.
پس از Copy&Paste کردن کدهای زیر دکمه F5 را می زنیم تا دستورات اجرا شوند.
من یک فایل اکسل که در بالا عکسش را گذاشتم پیوست می کنم تا امکان تست این 3 دستور فراهم بشه.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای موردی که من در بالا با شکل مطرح کردم :
Sub Del_Col_Cond()
Dim i As Integer
For i = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
If Application.CountIf(Columns(i), 120) > 0 Then
Columns(i).Delete
End If
Next i
End Sub
حالا اگر بجای اینکه اعداد مانند تصویر 1 افقی باشند، عمودی بودند، از دستور زیر استفاده می کنیم :
Sub Del_Row_Cond()
Dim i As Integer
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Application.CountIf(Rows(i), 120) > 0 Then
Rows(i).Delete
End If
Next i
End Sub
اگر هم فقط می خواستیم اعداد 120 که یکی در میان تکرار می شوند، حذف شوند ولی ستون های مربوط به اون باقی بمانند از کد زیر استفاده می کنیم :
( در واقع محتوای سلول حذف خواهد شد و نه خود سلول )
Sub Clear_Cell_Cond()
Dim cll As Range
For Each cll In ActiveSheet.UsedRange
If cll.Value = 120 Then cll.ClearContents
Next
End Sub