• DİKKAT

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

VBA ile ilgili bir soru (Array ler ile alakali)

Katılım
23 Eylül 2016
Mesajlar
1
Excel Vers. ve Dili
Excel 2013
Merhaba,

Bir okul projesi uzerinde calisiyorum, bu projede 4 farkli tahmin yapiliyor ve kullanici bu tahminlerden hangilerini karsilastirmak istedigini secebiliyor. Ben de bunu her secenegi once 0'a esitleyerek sonra Checkbox larin tiklanma durumuna gore tiklananlari 1'e esitliyor. Sonrada var olan datayla carpip grafige print ediyor. Yani tiklanan datalar oldugu gibi, tiklanmayanlar ise 0 olarak gozukuyor grafikte.

Sikinti surada, programi compile etmeyi denerken hata veriyor:
"Compile error : Can't assign to array"

Nerede yanlis yapiyorum, kodu asagiya koydum;

Kod:
Private Sub forecastButton_Click()

Dim movingAverageVariable() As Variant

Set movingAverageVariable = Sheets("Calculations").Range("CJ6").Value
Dim exponentialSmoothingVariable() As Variant

Set exponentialSmoothingVariable = Sheets("Calculations").Range("CJ6").Value

Dim holtsMethodVariable() As Variant

Set holtsMethodVariable = Sheets("Calculations").Range("CJ6").Value

Dim wintersMethodVariable() As Variant

Set wintersMethodVariable = Sheets("Calculations").Range("CJ6").Value

Dim activeVariable() As Variant

Set activeVariable = Sheets("Calculations").Range("CI6").Value

Dim movingAverageForecastArray() As Variant

Set movingAverageForecastArray = Sheets("Calculations").Range("S6:S65").Value

Dim exponentialSmoothingForecastArray() As Variant

Set exponentialSmoothingForecastArray = Sheets("Calculations").Range("Z6:Z65").Value

Dim holtsMethodForecastArray() As Variant

Set holtsMethodForecastArray = Sheets("Calculations").Range("AI6:AI65").Value

Dim wintersMethodForecastArray() As Variant

Set wintersMethodForecastArray = Sheets("Calculations").Range("AU6:AU65").Value

If movingAverageTextBox = True Then         'for ma

movingAverageVariable() = activeVariable()

End If
If exponentialSmoothingTextBox = True Then         'for es

exponentialSmoothingVariable() = activeVariable()

End If
If holtsMethodTextBox = True Then         'for hm

holtsMethodVariable() = activeVariable()

End If
If wintersMethodTextBox = True Then         'for wm

wintersMethodVariable() = activeVariable()

End If

Dim o As Object

Set o = CreateObject("excel.application")
o.Visible = True
o.Workbooks.Add
o.Sheets("Calculations").Range("BP6:BP65").Value = movingAverageForecastArray() * movingAverageVariable()
o.Sheets("Calculations").Range("BQ6:BQ65").Value = exponentialSmoothingForecastArray() * exponentialSmoothingVariable()
o.Sheets("Calculations").Range("BR6:BR65").Value = holtsMethodForecastArray() * holtsMethodVariable()
o.Sheets("Calculations").Range("BS6:BS65").Value = wintersMethodForecastArray() * wintersMethodVariable()


Chart1.Parent.Height = 500
Chart1.Parent.Width = 650

fname7 = ThisWorkbook.Path & Application.PathSeparator & "temp.jpg"
Chart1.Export Filename:=fname7, filtername:="jpg"

Image1.Picture = LoadPicture(fname7)
Kill fname7
End Sub
 
Geri
Üst