PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نحوه آدرس دهی شیت ها با متغیر در ماکرو



fimani119
2018/11/10, 10:30
سلام وقت بخیر
میخوام یه ماکرو بنویسم که در 12 شیت مختلف که تعداد ماه های سال هست و با متغیر k تعریف شده از یک ستون شماره پرسنلی کارمندان رو پیدا کنه و در یک شیت جداگانه که شیت 13 ام میشه ستون های مربوط به مبلغ و امتیاز همون کارمند رو در سطر مربوطش وارد کنه . کدی که نوشتم به صورت زیر هست

Sub Macro1()
For k = 1 To 12
For i = 4 To 65

For j = 9 To 75
28 For m = 4 To


If Sheet7.Cells(i, 1) = Sheetk.Cells(j, 4) Then
(Sheet7.Cells(i, m) = Sheetk.Cells(j, 14
(Sheet7.Cells(i, m + 1) = Sheetk.Cells(j, 15


End If
Next k
Next m
Next j
Next i

End Sub

توضیح اینکه i تعداد شماره سطرها در شیت ماه های مختلف هست و j شماره سطرها در شیت نهاییمون که قراره داده ها در ستون های شماره 5 تا 28 اش که متغیر m امون هست بشینن.
مشکلم در کد بالا نحوه آدرس دهی شیت هست که ازم ارور میگیره.
ممنون میشم راهنمایی کنید.

iranweld
2018/11/10, 12:16
با سلام

بهتر بود فایل خودتون را هم ضمیمه سایت میگردید(بصورت زیپ شده)


Sub Macro1()
For k = 1 To 12
For i = 4 To 65

For j = 9 To 75
For m = 4 To 28


If Sheet7.Cells(i, 1) = Sheets(k).Cells(j, 4) Then
Sheet7.Cells(i, m) = Sheets(k).Cells(j, 14)
Sheet7.Cells(i, m + 1) = Sheets(k).Cells(j, 15)


End If
Next m
Next j
Next i
Next k

End Sub

fimani119
2018/11/21, 09:00
سلام مجدد
کد رو تونستم اصلاح کنم شاید کسی به مشکل من بربخوره امیدوارم بتونه کمکش کنه برای داده های زیاد بدرد میخوره.

Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+m


k = 4
For n = 1 To 12
k = k + 2
For i = 4 To 67
For j = 9 To 75




If Sheet13.Cells(i, 1) = Sheets(n).Cells(j, 4) Then
Sheet13.Cells(i, k) = Sheets(n).Cells(j, 14)
Sheet13.Cells(i, k + 1) = Sheets(n).Cells(j, 15)


End If


Next j
Next i
Next n


End Sub

یاداوری میکنم که شیت 13 ام شیتی هست که مبلغ و امتیاز هر پرسنل به ترتیب ماه های سال وارد میشه. با توجه به این که فایلم محرمانه هست نمیتونم شیرش کنم.

iranweld
2018/11/21, 09:30
سلام مجدد
کد رو تونستم اصلاح کنم شاید کسی به مشکل من بربخوره امیدوارم بتونه کمکش کنه برای داده های زیاد بدرد میخوره.

Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+m


k = 4
For n = 1 To 12
k = k + 2
For i = 4 To 67
For j = 9 To 75




If Sheet13.Cells(i, 1) = Sheets(n).Cells(j, 4) Then
Sheet13.Cells(i, k) = Sheets(n).Cells(j, 14)
Sheet13.Cells(i, k + 1) = Sheets(n).Cells(j, 15)


End If


Next j
Next i
Next n


End Sub

یاداوری میکنم که شیت 13 ام شیتی هست که مبلغ و امتیاز هر پرسنل به ترتیب ماه های سال وارد میشه. با توجه به این که فایلم محرمانه هست نمیتونم شیرش کنم.


با سلام

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

fimani119
2018/11/21, 10:28
با سلام

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

دوست عزیز داده ها خیلی زیادن و متاسفانه فرصت نداشتم که این کار رو انجام بدم