我的「問題」是我已經建立了一個數組,該數組從預算矩陣中填充,其中預算可以每個月都波動。我有一個可以正常工作的代碼,可以從每個月獲得預算,但我不禁想到必須有更簡單的方法來填充月份預算變量。簡化使用數組來填充變量
Sub Calculate_CarryOver_To_Date()
'Get budget for each month
Dim Expense_Row As Integer
Dim Expense_Column(12) As Integer
'Set Settings Cross Hairs To 0
Expense_Row = 0
Erase Expense_Column
'Search for Horizontal Cross Hair
Expense_Row = Worksheets("Settings").Cells.Find(What:="materials", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Row
'Error Handle Row To Set Horizontal On
If Expense_Row = 0 Then
No_Budget = True
'Set Error Message
Financial_Report.Frame2.Visible = False
Exit Sub
End If 'End Error Handle
'Search For Vertical Cross Hair
Expense_Column(10) = Worksheets("Settings").Cells.Find(What:="January", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(11) = Worksheets("Settings").Cells.Find(What:="February", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(12) = Worksheets("Settings").Cells.Find(What:="March", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(1) = Worksheets("Settings").Cells.Find(What:="April", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(2) = Worksheets("Settings").Cells.Find(What:="May", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(3) = Worksheets("Settings").Cells.Find(What:="June", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(4) = Worksheets("Settings").Cells.Find(What:="July", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(5) = Worksheets("Settings").Cells.Find(What:="August", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(6) = Worksheets("Settings").Cells.Find(What:="September", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(7) = Worksheets("Settings").Cells.Find(What:="October", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(8) = Worksheets("Settings").Cells.Find(What:="November", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Expense_Column(9) = Worksheets("Settings").Cells.Find(What:="December", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
'Align Cross Hairs To Get Value
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(1)).Value
AprA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(2)).Value
MayA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(3)).Value
JunA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(4)).Value
JulA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(5)).Value
AugA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(6)).Value
SepA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(7)).Value
OctA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(8)).Value
NovA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(9)).Value
DecA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(10)).Value
JanA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(11)).Value
FebA = Budget_This_Month
Budget_This_Month = Worksheets("Settings").Cells(Expense_Row, Expense_Column(12)).Value
MarA = Budget_This_Month
End Sub
有沒有辦法通過Expense_column
到itterate並以更快的方式填充每月預算變量?
感謝
UPDATE
感謝您的答案,我到底採用的方法是:
MonthSelect(1) = "April"
MonthSelect(2) = "May"
MonthSelect(3) = "June"
MonthSelect(4) = "July"
MonthSelect(5) = "August"
MonthSelect(6) = "September"
MonthSelect(7) = "October"
MonthSelect(8) = "November"
MonthSelect(9) = "December"
MonthSelect(10) = "January"
MonthSelect(11) = "February"
MonthSelect(12) = "March"
For i = 1 To 12
Expense_Column(i) = Worksheets("Settings").Cells.Find(What:=MonthSelect(i), _
SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues, LookAt:=xlWhole).Column
Budget_Array(i) = Worksheets("Settings").Cells(Expense_Row, Expense_Column(i)).Value
'MsgBox Budget_Array(i) 'For Testing
Next i
然後我可以只是Budget_Array(i)
呼籲值。讓我的生活變得如此簡單!謝謝!
是否有可能使一個陣列的每個poition(指數)涉及你想使用的月份?即而不是使用FebA來存儲它,你使用Arr(1)?然後Arr(3)爲四月? – RubberDuck
@ ckuhn203是的,我意識到這可能是最好的辦法,一旦我把我的頭圍繞它。這樣快得多! – SilverShotBee
利亞姆,你應該發佈你的最終解決方案作爲另一個答案,而不是你的問題的一部分。謝謝! – RubberDuck