我有一個完美的宏,但我現在需要定製它並增加複雜性。爲if if else循環添加複雜性
這個宏基本上是以下代碼重複無數次的各種範圍。
For i = 2 To n
Range(Cells(13, i), Cells(19, i)).Value = Sheets(i).Range("J13:J19").Value
Next i
邏輯/複雜性,我需要添加到本應該如下:
如果範圍O13的總和:O19上片i大於零,則該範圍內的值這張紙上的單元格(13,i),單元格19,i)等於紙張i上的範圍p13:p19的值。
如果紙張i上的範圍O13:O19之和的值不大於0,則將目標範圍的值設置爲等於(範圍紙張(i).range(「I13:I19 「)-sheet(i).range(」K13:K19「)* 4).value
簡而言之,如果範圍之和爲0,則將範圍A中每個單元格的值設置爲值(範圍C * 4中的每個單元格的值)...
Sub Op_ex_analysis_macro()
ActiveWorkbook.Sheets.Add Before:=Worksheets(1)
ActiveSheet.Name = "Control Panel"
Range("A:A").ColumnWidth = 36
Range("A12").Value = "Property Code"
Range("A13:A16") = Sheets(2).Range("A13:A16").Value
Range("A17") = Sheets(2).Range("B17").Value
Range("A18") = Sheets(2).Range("A18").Value
Range("A19") = Sheets(2).Range("B19").Value
Range("A20:A29") = Sheets(2).Range("A21:A30").Value
Range("A30") = Sheets(2).Range("B31").Value
Range("A31") = Sheets(2).Range("A33").Value
Range("A32:A36") = Sheets(2).Range("A35:A39").Value
Range("A37:A38") = Sheets(2).Range("A41:A42").Value
Range("A40").Value = "Analyst"
Range("A41").Value = "Number of Units"
Range("A42").Value = "Asset Manager"
Range("A43").Value = "Tenancy"
Range("A44").Value = "Year Built/Type"
Range("A45").Value = "Management Company"
Range("A46").Value = "End of Compliance Year"
Range("A47").Value = "Property Name"
Range("A48").Value = "Number of Properties"
Range("A49").Value = "City"
Range("A50").Value = "State"
'Consolidate Property Codes
n = ActiveWorkbook.Sheets.Count
For i = 2 To n
Z = Sheets(i).Range("P49").Value
Cells(12, i) = Z
Next i
'Consolidate rows 13-19
For i = 2 To n
Select Case Application.Sum(ThisWorkbook.Sheets(i).Range("O13:O33"))
Case Is > 0
Range(Cells(13, i), Cells(19, i)).Value = Sheets(i).Range("P13:P19").Value
Case Is = 0
Range(Cells(13, i), Cells(19, i)).Value = ThisWorkbook.Sheets(i).Range("I13:I19") - ThisWorkbook.Sheets(i).Range("K13:K19") * 4
End Select
Next i
但是,如果值= 0呢? – braX
嗨Joao,我試着你的解決方案,但得到一個語法錯誤,使你的代碼第2行... – AdMac
@AdamMcDermott剛剛編輯的代碼,請現在試試吧。 –