راهنمایی در مورد اصلاح کدهای VBA

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

    • 2012/10/09
    • 7

    راهنمایی در مورد اصلاح کدهای VBA

    با سلام خدمت اساتید محترم
    من یه سری کد نوشتم ولی بین کار ارور میده میخواستم ببینم مشکل مربوط به کدام قسمت کدنویسی هستش:

    (Sheet3.Cells(m, 3) = Sheet2.Cells(14, 2
    For i = 2 To 13
    t = 2
    If Sheet2.Cells(i, 3) <> 0 Then
    (u = Sheet2.Cells(i, 3
    For j = 1 To 25
    If Sheet4.Cells(1, 7 * j) = u Then
    w = j - 1
    For i = 3 To 5000
    If Sheet4.Cells(1, 1 + 7 * w) <> 0 Then t = 1
    next i
    t = t + 1
    (Sheet4.Cells(t, 1 + 7 * w) = Sheet2.Cells(2, 2
    (Sheet4.Cells(t, 2 + 7 * w) = Sheet2.Cells(14, 2
    (Sheet4.Cells(t, 4+ 7 * w) = Sheet2.Cells(i, 5
    (Sheet4.Cells(t, 5 + 7 * w) = Sheet2.Cells(i, 6
    End If
    Next j
    End If
    Next i

    پیشاپیش از زحمات شما تشکر میکنم
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    RE: راهنمایی در مورد اصلاح کدهای VBA

    لطفا فایل مربوطه رو پیوست کن ازین کد ها نمیشه چیزی در آورد
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • amrdiab

      • 2012/10/09
      • 7

      #3
      RE: راهنمایی در مورد اصلاح کدهای VBA

      بفرمایید ممنون از لطفتون




      کد:
      For i = 2 To 13
      p = Sheet2.Cells(i, 5) + p
      q = Sheet2.Cells(i, 6) + q
      Next i
      If p <> q Then Sheet2.Cells(15, 2) = "جمع ستون بدهکار و بستانکار برابر نيست"
      If p = q Then
      y = Sheet2.Cells(2, 1)
      m = 2
      For i = 2 To 5000
      If Sheet3.Cells(i, 3) <> 0 Then m = m + 1
      Next i
      For i = 2 To 13
      If Sheet2.Cells(i, 3) <> 0 Then
      Sheet3.Cells(m, 1) = Sheet2.Cells(i, 1)
      Sheet3.Cells(m, 2) = Sheet2.Cells(i, 2)
      Sheet3.Cells(m, 3) = Sheet2.Cells(i, 3)
      Sheet3.Cells(m, 4) = Sheet2.Cells(i, 4)
      Sheet3.Cells(m, 5) = Sheet2.Cells(i, 5)
      Sheet3.Cells(m, 6) = Sheet2.Cells(i, 6)
      m = m + 1
      End If
      Next i
      Sheet3.Cells(m, 3) = Sheet2.Cells(14, 2)
      For i = 2 To 13
      t = 2
      If Sheet2.Cells(i, 3) <> 0 Then
      u = Sheet2.Cells(i, 3)
      For j = 1 To 25
      If Sheet4.Cells(1, 7 * j) = u Then
      w = j - 1
      For i = 3 To 5000
      If Sheet4.Cells(1, 1 + 7 * w) <> 0 Then t = 1
      next i
      t = t + 1
      Sheet4.Cells(t, 1 + 7 * w) = Sheet2.Cells(2, 2)
      Sheet4.Cells(t, 2 + 7 * w) = Sheet2.Cells(14, 2)
      Sheet4.Cells(t, 4 + 7 * w) = Sheet2.Cells(i, 5)
      Sheet4.Cells(t, 5 + 7 * w) = Sheet2.Cells(i, 6)
      End If
      Next j
      End If
      Next i
      For i = 2 To 10
      Sheet2.Cells(i, 3) = ""
      Sheet2.Cells(i, 5) = ""
      Sheet2.Cells(i, 6) = ""
      Next i
      Sheet2.Cells(2, 2) = ""
      Sheet2.Cells(14, 2) = ""
      Sheet2.Cells(15, 2) = ""
      Sheet2.Cells(2, 1) = y + 1
      this Workbook.Save
      End If

      کامنت

      • amrdiab

        • 2012/10/09
        • 7

        #4
        RE: راهنمایی در مورد اصلاح کدهای VBA

        این کدها قابل اصلاح شدن هستند؟

        کامنت

        • m_d6712

          • 2010/05/22
          • 174

          #5
          RE: راهنمایی در مورد اصلاح کدهای VBA

          سلام دوست عزیز.

          ایرادی که کد شما دارد در تعریف متغیر مرتبط با حلقه ها است. شما دو حلقه تو در تو تعریف کرده اید و هر در هر دوی اینها از یک متغیر (i) برای شمارش استفاده کردید. این باعث شده است که کد شما ایراد پیدا کند. ایرادات دیگری نیز ممکن است در کد شما وجود داشته باشد. ولی ایرادی که شما مواجه شدید به دلیل استفاده از متغییر یکسان در دو حلقه تودرتو می باشد.

          لطفا از شمارنده های دیگر مثل j و k استفاده نمایید.
          -------
          [url=http://md6712.com]http://md6712.com[/url]
          جامعه ایده پردازان: http://idekadeh.com

          کامنت

          چند لحظه..