نحوه انتخاب یک سلول با مقدار یکسان با vba
Collapse
X
-
سلام از کد ذیل میتونید استفاده کنید..
فایل نمونه هم پیوست شده است
موفق باشید
کد PHP:Sub MultiSelection()
'
Dim i, col, row, Total_row, MyCode As Integer
Dim cel As String
col = 4 'شماره ستون مورد جست و جو
row = 4 ' شماره ردیفی از ستون مورد جست و جو که میخواهید جست و جو از ان ردیف شروع شود
Total_row = row + 9 'بجای عدد تعداد ردیف هایی که میخواهید بررسی شود را وارد کنید
MyCode = 1 ' مقداری که میخواهید جست و جو کنید همان کدپرسنلی
'
With Application.WorksheetFunction
For i = row To Total_row Step 1
If Cells(i, col) = MyCode Then
cel = cel + .Substitute(Cells(i, col).Address, "$", "") + ","
End If
Next i
'
cel = Mid(cel, 1, Len(cel) - 1)
End With
Range(cel).Select
Selection.Copy
'
End Sub
فایل های پیوست شده[CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
[COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
[/CENTER] -
چرا از conditional formating استفاده نمی کنید خیلی راحتره فایل \یوست و مشاهده کنید
97/4/3فایل های پیوست شدهکامنت
-
ممنونم از شما - دقیقا همینو میخواستمسلام از کد ذیل میتونید استفاده کنید..
فایل نمونه هم پیوست شده است
موفق باشید
کد PHP:sub multiselection()
'
dim i, col, row, total_row, mycode as integer
dim cel as string
col = 4 'شماره ستون مورد جست و جو
row = 4 ' شماره ردیفی از ستون مورد جست و جو که میخواهید جست و جو از ان ردیف شروع شود
total_row = row + 9 'بجای عدد تعداد ردیف هایی که میخواهید بررسی شود را وارد کنید
mycode = 1 ' مقداری که میخواهید جست و جو کنید همان کدپرسنلی
'
with application.worksheetfunction
for i = row to total_row step 1
if cells(i, col) = mycode then
cel = cel + .substitute(cells(i, col).address, "$", "") + ","
end if
next i
'
cel = mid(cel, 1, len(cel) - 1)
end with
range(cel).select
selection.copy
'
end sub
یه سوال اینجا که فقط یک سلول رو انتخاب میکنه - میشه گقت هر جایی که با کد من برابر هست اون سطر ها مثلا ( a:c ) کپی کنه؟
یه سوال دیگه:
آیا تووی شیتی که مثلاً یک کد پرسنلی فیلتر شده - میشه گفت حالا 25 ردیف اول رو میبینی ( فیلتر شده ) کپی کنه بدون اینکه سلول های فیلتر شده رو کپی نکنه
ممنون میشم پاسخ بدیدکامنت
-
در مورد سوال اول اینکه هر سلول مساوی مقدار مورد نظر روانتخاب و کپی می کنه... فایل \یوست رو ببینیدممنونم از شما - دقیقا همینو میخواستم
یه سوال اینجا که فقط یک سلول رو انتخاب میکنه - میشه گقت هر جایی که با کد من برابر هست اون سطر ها مثلا ( a:c ) کپی کنه؟
یه سوال دیگه:
آیا تووی شیتی که مثلاً یک کد پرسنلی فیلتر شده - میشه گفت حالا 25 ردیف اول رو میبینی ( فیلتر شده ) کپی کنه بدون اینکه سلول های فیلتر شده رو کپی نکنه
ممنون میشم پاسخ بدید
در مورد سوال دوم هم فایل نمونه بزارید[CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
[COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
[/CENTER]کامنت
-
ببنید تووی فایلی که ضمیمه کردم - 2 تا ستون دارم ( ردیف - نام )
1 - اونائی که ردیف 1 هست فیلتر میکنم -
2 - بعد با استفاده از برنامه نویسی ماکرو - میخوام 10 ردیف اولی که بعد از فیلتر نشون میده رو کپی کنه ( بدون اینکه ردیف های مخفی شده رو کپی کنه )
----
توضیح :
میدونم که میتونم بعد از فیلتر شدن کل سلول ها رو کپی کنم تووی یک شیت دیگه اون موقع فقط فیلتر شده ها رو کپی میکنه - ولی یه ایرادی که داره اینه که تووی شیت مقصد بیش از 100000 رکورد خالی هم ایجاد میکنه موقع پیست کردن.فایل های پیوست شدهکامنت
-
سلام مجددببنید تووی فایلی که ضمیمه کردم - 2 تا ستون دارم ( ردیف - نام )
1 - اونائی که ردیف 1 هست فیلتر میکنم -
2 - بعد با استفاده از برنامه نویسی ماکرو - میخوام 10 ردیف اولی که بعد از فیلتر نشون میده رو کپی کنه ( بدون اینکه ردیف های مخفی شده رو کپی کنه )
----
توضیح :
میدونم که میتونم بعد از فیلتر شدن کل سلول ها رو کپی کنم تووی یک شیت دیگه اون موقع فقط فیلتر شده ها رو کپی میکنه - ولی یه ایرادی که داره اینه که تووی شیت مقصد بیش از 100000 رکورد خالی هم ایجاد میکنه موقع پیست کردن.
اگر میخواهید داده های مربوط به یک شماره مشخص را در جای دیگر کپی کنید نیازی به فیلتر کردن و ... نیست... با استفاده از کد ذیل می توانید این کار را انجام دهید
با توجه به فایل نمونه ای که فرستادید شماره ردیف مورد نظر را در سلول G1 وارد کرده و این کد را اجرا کنید... مقادیر موجود در ستون دوم (نام) که دارای شماره مورد نظر هستند در ستون H کپی می شوند.. بدون فاصله بین مقادیرکد PHP:Sub Copy_1()
Dim row, i, MyNum, j As Integer
Range("H:H").Clear
j = 1
MyNum = Range("G1")
row = Application.WorksheetFunction.CountA(Range("A:A")) - 1
For i = 2 To row Step 1
If Cells(i, 1) = MyNum Then
Cells(j, 8) = Cells(i, 2)
j = j + 1
End If
Next i
End Sub
...
فایل نمونه هم پیوست شده استفایل های پیوست شده[CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
[COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
[/CENTER]کامنت



کامنت