نویسنده موضوع: حذف رديف هاي يك شيت(آموزش)  (دفعات بازدید: 2300 بار)

mobtadi

  • مدیران انجمن
  • *
  • ارسال: 647
  • جمع امتیازها: +137/-5
  • از دانستن كه مغرور مي شويم از ندانستن سرافكنده ايم
حذف رديف هاي يك شيت(آموزش)
« : 3 اسفند 1392 - 10:30:10 »
با سلام لطفا به دو دسته كدنويسي زير توجه كنيد چرا فقط يكي از اين دو در حذف يك در ميان رديفها در يك شيت از رديف 1 تا 10 موفق است ؟
Sub DeleteRows()
Dim RowNum As Long
For RowNum = 10 To 2 Step -2
Rows(RowNum).Delete
Next RowNum
End Sub

Sub DeleteRows2()
Dim RowNum As Long
For RowNum = 2 To 10 Step 2
Rows(RowNum).Delete
Next RowNum
End Sub

عباس عبدالهی

  • کاربر فعال
  • ***
  • ارسال: 105
  • جمع امتیازها: +6/-5
  • farhang404.ir
    • فرهنگ اجتماعی
پاسخ : حذف رديف هاي يك شيت(آموزش)
« پاسخ #1 : 3 اسفند 1392 - 12:28:39 »
 با سلام شاید با چرخش حلقه و حذف سطر ، سطر مورد نظر بعدی در حلقه یافت نمی شود یعنی شماره سطر تغییر می کند.

PARSA

  • کاربر انجمن
  • **
  • ارسال: 66
  • جمع امتیازها: +16/-1
پاسخ : حذف رديف هاي يك شيت(آموزش)
« پاسخ #2 : 4 اسفند 1392 - 16:33:06 »
در دومي بايد STEP=1 باشد تا مثل اولي عمل کند
Sub DeleteRows2()
Dim RowNum As Long
For RowNum = 2 To 10 Step 1
Rows(RowNum).Delete
Next RowNum
End Sub
ولي تحليل اينکه چرا اين اتفاق مي افتد را نمي دانم، موضوع جالبي را مطرح کرديد!

بهرام صمدیان

  • مدیران انجمن
  • *
  • ارسال: 545
  • جمع امتیازها: +182/-1
    • آمار 80
پاسخ : حذف رديف هاي يك شيت(آموزش)
« پاسخ #3 : 7 اسفند 1392 - 01:25:16 »
با سلام
علت این اتفاق این است که وقتی شما سطرها را از پایین به بالا حذف می کنید شماره سطرهای بالایی تغییری نمی کند چون اکسل بعد از حذف سطر مورد نظر لیست را به سمت بالا شیفت می کند پس اگر مثلا سطر 10 حذف شد و قرار باشد بعد از آن سطر 8 حذف شود سطر 8 هنوز هم سطر 8 قبلی است و سطرهای زیر سطر 10 تغییر سطر داده اند
اما در خذف از بالا شماره سطرهای پایینی با هر بار حذف مدام تغییر می کند
با احترام