• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Type Mismatch hatasını gideremiyorum

Katılım
15 Mart 2012
Mesajlar
14
Excel Vers. ve Dili
Excel 2003 English
merhabalar,
aşağıdaki kodlarda R'nin hesaplandığı satırda "type mismatch" hatasını alıyorum. neden kaynaklandığını bulamadım. xnumbers isimli bir add-in yüklemiştim. acaba xnumbers fonksiyonlarını yanlış biçimde mi çağırmışım? referans olarak xnumbers.xla yı göstermiştim. yardımcı olabilirseniz çok sevinirim.


Kod:
Sub alfa()
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim R As Double
Dim x As Double

Worksheets(1).Activate
For j = 2 To 100
    For i = 2 To 51
        For n = 0 To 20
            R = (((XNUMBERS.xfact(n)) * (3 + (2 * n))) / ((n + 1) * (n + 2))) * ((XNUMBERS.Poly_Jacobi(1, 1, Cells(1, j), n)) ^ 2) * (XNUMBERS.Poly_Jacobi(2, 0, (Cells(i, 1)) ^ 2, n))
            x = x + R
        Next n
            Cells(i, j).Value = ((1 - Cells(1, j)) ^ 2) * ((1 - ((Cells(i, 1) ^ 2))) ^ 2) * x
            x = 0
    Next i
Next j

End Sub
 
Son düzenleme:
ben çalıştırdım
sayfa 0 larla doldu dogrumudur ?
 
Kod:
Sub alfa()
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim R As Double
Dim x As Double
On Error Resume Next
Worksheets(1).Activate
For j = 2 To 100
    For i = 2 To 51
        For n = 0 To 20
            R = (((XNUMBERS.xfact(n)) * (3 + (2 * n))) / ((n + 1) * (n + 2))) * ((XNUMBERS.Poly_Jacobi(1, 1, Cells(1, j), n)) ^ 2) * (XNUMBERS.Poly_Jacobi(2, 0, (Cells(i, 1)) ^ 2, n))
            x = x + R
        Next n
            Cells(i, j).Value = ((1 - Cells(1, j)) ^ 2) * ((1 - ((Cells(i, 1) ^ 2))) ^ 2) * x
            x = 0
    Next i
Next j

End Sub
 
ben çalıştırdım
sayfa 0 larla doldu dogrumudur ?

yok çalışması halinde beklediğim sonuç o değildi, ama şimdi işlemlerdeki hatamı bulabilirim sayenizde. çunku hiç çalıştıramamıştım, çok teşekkür ederim. üzerinde uğraşmaya devam edeceğim.
 
ben çalıştırdım
sayfa 0 larla doldu dogrumudur ?

bu xnumbers.poly_jacobi fonksiyonunu düzgün çalıştıramıyorum galiba. çünkü sanırım "on error resume next" dediğimizde her işlemde hata algılayıp diğer işleme geçiyo ve böylelikle hiç işlem yapmadan tüm sonuçları 0 olarak geri döndürüyo.
 
Kod:
x = Cells(1, j).Value 
R = XNUMBERS.Poly_Jacobi(1, 1, x, n)

fonksiyonu sadeleştirdim ama yine hata veriyor belkide hata yapımcıda veya veri 0 olduğundan ...
 
Son düzenleme:
Kod:
R = XNUMBERS.Poly_Jacobi(1, 1, x, n)

fonksiyonu sadeleştirdim ama yine hata veriyor belkide hata yapımcıda veya veri 0 olduğundan ...

yok veri 0 olduğunda da 0'dan farklı bir sonuç vermeli. ama sanırım dediğiniz gibi hata yapımcıda olabilir.
normal excel çalışma sayfasında elle argümanları girdiğimde sorunsuz doğru sonuç veriyor ama vba'da çağırdığımda hep hata veriyor. benim için kötü haber:frown:
çok teşekkür ederim yardımınız için.
 
elle çalışan vba da da çalışır ; gerekli fonksiyonları ayırıp ; kopyalayıp sayfa1 re ve modüldeki kodunuzuda ; atl atla tek sayfada deneyin ; bağ istiyor olabilir.

amaç xnumbersi devre dışı bırakıp sadece lazım olan function kısmını almak
 
tam olarak doğru anladım mı bilmiyorum ama deneyeceğim:)
 
Ben denedim işi bıraktım =false :(

Birde şu x = Cells(1, j).Value
R = XNUMBERS.Poly_Jacobi(1, 1, x, n) 1 1 ler a ve b deger almalımı a= b= denmelimi oda takıldı aklıma ?
 
Ben denedim işi bıraktım =false :(

Birde şu x = Cells(1, j).Value
R = XNUMBERS.Poly_Jacobi(1, 1, x, n) 1 1 ler a ve b deger almalımı a= b= denmelimi oda takıldı aklıma ?

ya sizi de uğraştırdım çok:(
normal çalışma sayfasında elle referans da girsem doğrudan 1 gibi bir sayı da girsem doğru sonucu veriyodu. = kullanmamıştım hiç.
bu arada ben xnumbers'ın kullanma kılavuzuna baktım da şöyle bir örnek code gördüm:
Kod:
Sub Test()
Dim a, b, c, DgtMax
DgtMax = Range("B2")
a = Range("B3")
b = Range("B4")
c = XNUMBERS.xdiv(a, b,
DgtMax)
Range("B5") = "'" & c
End Sub
buna göre fonksiyonun geri döndürdüğü sonuç string bi ifade mi oluyo?
 
string /variant/value hepside olabilir...

şu haliyle düzgün çalıştı sonunda:
Kod:
Sub alfa()
Dim i,j,n As Integer
Dim a, b, c, d, e, R, x As Double

Worksheets(1).Activate
For j = 2 To 101
    For i = 2 To 51
        For n = 0 To 20
            d = Cells(1, j)
            e = Cells(i, 1)
            Cells(100, 1) = XNUMBERS.xfact(n)
            a = Range("A100")
            Cells(101, 1) = XNUMBERS.Poly_Jacobi(1, 1, d, n)
            b = Range("A101")
            Cells(102, 1) = XNUMBERS.Poly_Jacobi(2, 0, (e) ^ 2, n)
            c = Range("A102")
            
            R = ((a) * (3 + (2 * n)) / ((n + 1) * (n + 2))) * ((b) ^ 2) * (c)
            x = x + R
        Next n
        Cells(i, j).Value = ((1 - Cells(1, j)) ^ 2) * ((1 - ((Cells(i, 1) ^ 2))) ^ 2) * x
        x = 0
        
    Next i
Next j

End Sub
Sub ConvertText()
    For Each cell In Selection
        cell.Value = Val(cell.Value)
    Next
    Selection.NumberFormat = "General"
End Sub
 
Bende tam böyle yapsana diyecektim .... (yalan) :)
 
Geri
Üst