نحوه آدرس دهی شیت ها با متغیر در ماکرو

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • fimani119

    • 2018/11/10
    • 27
    • 29.00

    نحوه آدرس دهی شیت ها با متغیر در ماکرو

    سلام وقت بخیر
    میخوام یه ماکرو بنویسم که در 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 امون هست بشینن.
    مشکلم در کد بالا نحوه آدرس دهی شیت هست که ازم ارور میگیره.
    ممنون میشم راهنمایی کنید.
    Last edited by Amir Ghasemiyan; 2018/11/12, 14:26. دلیل: قرار دادن كدها در تگ مربوطه
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

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

    کد PHP:
    Sub Macro1()
    For 
    1 To 12
    For 4 To 65

    For 9 To 75
     
    For 4 To 28


    If Sheet7.Cells(i1) = Sheets(k).Cells(j4Then
    Sheet7
    .Cells(im) = Sheets(k).Cells(j14)
    Sheet7.Cells(i1) = Sheets(k).Cells(j15)


    End If
    Next m
    Next j
    Next i
    Next k

    End Sub 

    کامنت

    • fimani119

      • 2018/11/10
      • 27
      • 29.00

      #3
      سلام مجدد
      کد رو تونستم اصلاح کنم شاید کسی به مشکل من بربخوره امیدوارم بتونه کمکش کنه برای داده های زیاد بدرد میخوره.
      کد:
      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 ام شیتی هست که مبلغ و امتیاز هر پرسنل به ترتیب ماه های سال وارد میشه. با توجه به این که فایلم محرمانه هست نمیتونم شیرش کنم.
      Last edited by Amir Ghasemiyan; 2018/11/21, 10:32. دلیل: قرار دادن كدها در تگ مربوطه

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        نوشته اصلی توسط fimani119
        سلام مجدد
        کد رو تونستم اصلاح کنم شاید کسی به مشکل من بربخوره امیدوارم بتونه کمکش کنه برای داده های زیاد بدرد میخوره.
        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/10
          • 27
          • 29.00

          #5
          نوشته اصلی توسط iranweld
          با سلام

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

          کامنت

          چند لحظه..