- Katılım
- 23 Mart 2017
- Mesajlar
- 35
- Excel Vers. ve Dili
- 2016 ingilizce
Hocam merhabalar, bitirme projesi yapıyoruz. Vba ile bir kodlama işine giriştik.
Kısaca yapmak istediğim şeyi yazayım:
Elimizde bir sürü veri var, biz bu verileri ilk olarak korelasyona sokuyoruz. Korelasyon çıktısında oluşan matristeki değerler -1 ile +1 arası değerler alıyor.
İkinci olarak korelasyon matrisindeki verileri tarayarak 0,3ten büyük ve -0,3ten küçük verilerin hücrelerine bakıyoruz
Bu baktığımız hücrelerin bildiğiniz gibi en üst satırında ve en sol sütununda verilerin isimleri yer alıyor.
Bu isimleri tutması gereken bir string arrayi tanımlıyoruz
Yazdığım kodda yukarıdaki dediklerimi yapmaya çalıştım
Kod şu şekilde:
Sub correlationhighlight()
Dim veriRange As Range
Dim i As Integer
Dim j As Integer
Dim count As Integer
Dim Arr() As Variant
Arr = Range("B3:AH35")
Dim MyArray(32, 32) As String
count = 1
' For Each cell In [ActiveWorkbook]
For i = 0 To 34
For j = 0 To 35
If (Cells(i + 2, j + 3) >= 0.3 Or Cells(i + 2, j + 3) <= -0.3) Then
MyArray(i, 1) = Cells(i + 2, 1)
MyArray(i, count) = Cells(1, j + 3)
End If
count = count + 1
Next j
Next i
End Sub
Sarı ile işaretleridiğim yerder için "subscript out of range" hatası veriyor.
Lütfen yardım ediniz
Teşekkürler...
Kısaca yapmak istediğim şeyi yazayım:
Elimizde bir sürü veri var, biz bu verileri ilk olarak korelasyona sokuyoruz. Korelasyon çıktısında oluşan matristeki değerler -1 ile +1 arası değerler alıyor.
İkinci olarak korelasyon matrisindeki verileri tarayarak 0,3ten büyük ve -0,3ten küçük verilerin hücrelerine bakıyoruz
Bu baktığımız hücrelerin bildiğiniz gibi en üst satırında ve en sol sütununda verilerin isimleri yer alıyor.
Bu isimleri tutması gereken bir string arrayi tanımlıyoruz
Yazdığım kodda yukarıdaki dediklerimi yapmaya çalıştım
Kod şu şekilde:
Sub correlationhighlight()
Dim veriRange As Range
Dim i As Integer
Dim j As Integer
Dim count As Integer
Dim Arr() As Variant
Arr = Range("B3:AH35")
Dim MyArray(32, 32) As String
count = 1
' For Each cell In [ActiveWorkbook]
For i = 0 To 34
For j = 0 To 35
If (Cells(i + 2, j + 3) >= 0.3 Or Cells(i + 2, j + 3) <= -0.3) Then
MyArray(i, 1) = Cells(i + 2, 1)
MyArray(i, count) = Cells(1, j + 3)
End If
count = count + 1
Next j
Next i
End Sub
Sarı ile işaretleridiğim yerder için "subscript out of range" hatası veriyor.
Lütfen yardım ediniz
Teşekkürler...
