کمک برای جایگزینی فرمول در سلول

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • كامران

    • 2016/06/29
    • 147
    • 41.00

    [حل شده] کمک برای جایگزینی فرمول در سلول

    سلام
    من یه برنامه دارم دارم توش یه تغییراتی میدم و میخوام با کمک vba فرمولعای نوشته شده در یکسری از سلولها رو عوض کنم کد زیر رو هم براش نوشتم ولی با وجودی که نتیجه کد رو (همون فرمول نهائی) به دستور msgbox نگاه کردم و کاملآ درسته ولی اکسل در خطی که میگم خطا میده چکار کنم ؟؟؟؟؟؟؟؟
    کد:
    Sub tst()
    
           For r = 22 To 37
                For c = 32 To 266 Step 9
                    ad = Cells(r, c).Address
                    f = Range(ad).Formula
                    f = Right(f, Len(f) - 1)
                    fn = "=IF(" & f & "=" & Chr(34) & Chr(34) & ";0;" & f & ")"
                    f1 = InStr(1, fn, ",")
                    fn = Left(fn, f1 - 1) & ";" & Right(fn, Len(fn) - f1)
                    f1 = InStr(1, fn, ",")
                    fn = Left(fn, f1 - 1) & ";" & Right(fn, Len(fn) - f1)
                    MsgBox fn
                    Range(ad).Formula = fn
                Next c
            Next r
    End Sub

    خط دارای خطا
    کد PHP:
                    Range(ad).Formula = fn 
    خطهای پایین برا اینه که جدا کننده تو سیستم من بجای کاما - سمی کالنه
    کد:
    f1 = InStr(1, fn, ",")
                    fn = Left(fn, f1 - 1) & ";" & Right(fn, Len(fn) - f1)
                    f1 = InStr(1, fn, ",")
                    fn = Left(fn, f1 - 1) & ";" & Right(fn, Len(fn) - f1)
    Last edited by كامران; 2018/01/18, 00:40.
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام
    نمونه فایل رو بصورت زیپ شده ضمیمه سایت کنید

    فعلا این کدها رو تست کنید

    کد PHP:
    Sub tst()

           For 
    22 To 37
                
    For 32 To 266 Step 9
                    ad 
    Cells(rc)
                    
    ad.Formula
                    f 
    Right(fLen(f) - 1)
                    fn = 
    "=IF(" "=" Chr(34) & Chr(34) & ";0;" ")"
                    
    f1 InStr(1, fn, ",")
                    fn = 
    Left(fn, f1 1) & ";" Right(fn, Len(fn) - f1)
                    
    f1 InStr(1, fn, ",")
                    fn = 
    Left(fn, f1 1) & ";" Right(fn, Len(fn) - f1)
                    
    MsgBox fn
                    
    Range(ad).Formula = fn
                
    Next c
            Next r
    End Sub 

    کامنت

    • Amir Ghasemiyan

      • 2013/09/20
      • 4598
      • 100.00

      #3
      سلام دوست عزيز

      در فرمول هايي كه در vba مينويسيد بايد حتما از ( , ) به عنوان جدا كننده آرگومان ها استفاده كنيد حتي اگر در خود اكسل از ( ; ) استفاده ميكنيد

      کامنت

      چند لحظه..