우리는 기업이 에너지 요구량을 줄이는 데 도움이되도록 에너지 저장 장치 (10 ', 20'또는 40 '컨테이너)를 사용하여 무엇이 무엇인지 알 수있는 고급 알고리즘을 갖춘 거대한 뇌를 사용합니다. 그들의 역사적인 사용법에 기초한 최선의 행동. 우리는 15 분 단위의 증분 데이터에 따라 올바른 크기의 uGrid (Energy Storage Solution)를 찾는 데 도움이되는 매크로를 가지고 있습니다. Google 계산의 주요 부분은 GoalSeek 코드이지만 완료하는 데 시간이 오래 걸립니다.최적화가 필요한 GoalSeek 코드
GoalSeek을 반복하면 매월 96 개의 분리 된 데이터 포인트로 구성된 데이터가 실행됩니다. 따라서 연간 데이터 세트에는 35,040 개의 구간 데이터가 있습니다.
우리는 어떤 시스템을 설계해야하는지 이해할 수있는 시트에서 많은 다른 계산이 진행되고 있습니다.
이 아이디어를 효율적으로 활용하려면 어떻게해야합니까?
If Range("H1") > 1 Then
Application.EnableEvents = False 'Prevent looping based on the 'change' caused by multiplication
Cells(16, 7) = Cells(16, 7) * Range("H1")
Application.EnableEvents = True 'allow events again
End If
If Range("E3") = Range("SetNumberkW") Then
'Range("D3").Value = 0
Else:
Range("D3").Value = 0
Range("G3").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D3")
End If
If Range("E4") = Range("SetNumberkW") Then
Range("D4").Value = 0
Else:
Range("D4").Value = 0
Range("G4").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D4")
End If
If Range("E5") = Range("SetNumberkW") Then
Range("D5").Value = 0
Else:
Range("D5").Value = 0
Range("G5").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D5")
End If
If Range("E6") = Range("SetNumberkW") Then
Range("D6").Value = 0
Else:
Range("D6").Value = 0
Range("G6").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D6")
End If
If Range("E7") = Range("SetNumberkW") Then
Range("D7").Value = 0
Else:
Range("D7").Value = 0
Range("G7").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D7")
End If
If Range("E8") = Range("SetNumberkW") Then
Range("D8").Value = 0
Else:
Range("D8").Value = 0
Range("G8").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D8")
End If
If Range("E9") = Range("SetNumberkW") Then
Range("D9").Value = 0
Else:
Range("D9").Value = 0
Range("G9").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D9")
End If
If Range("E10") = Range("SetNumberkW") Then
Range("D10").Value = 0
Else:
Range("D10").Value = 0
Range("G10").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D10")
End If
If Range("E11") = Range("SetNumberkW") Then
Range("D11").Value = 0
Else:
Range("D11").Value = 0
Range("G11").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D11")
End If
If Range("E12") = Range("SetNumberkW") Then
Range("D12").Value = 0
Else:
Range("D12").Value = 0
Range("G12").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D12")
End If
If Range("E13") = Range("SetNumberkW") Then
Range("D13").Value = 0
Else:
Range("D13").Value = 0
Range("G13").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D13")
End If
If Range("E14") = Range("SetNumberkW") Then
Range("D14").Value = 0
Else:
Range("D14").Value = 0
Range("G14").GoalSeek Goal:=Range("SetNumberkWh"), ChangingCell:=Range("D14")
End If
' Start the kW offset part of the programming
If Range("F3") <= Range("SetNumberkW") Then
Range("D19").Value = 0
Else:
Range("D19").Value = 0
Range("F19").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D19")
End If
If Range("F4") <= Range("SetNumberkW") Then
Range("D20").Value = 0
Else:
Range("D20").Value = 0
Range("F20").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D20")
End If
If Range("F5") <= Range("SetNumberkW") Then
Range("D21").Value = 0
Else:
Range("D21").Value = 0
Range("f21").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D21")
End If
If Range("F6") <= Range("SetNumberkW") Then
Range("D22").Value = 0
Else:
Range("D22").Value = 0
Range("f22").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D22")
End If
If Range("F7") <= Range("SetNumberkW") Then
Range("D23").Value = 0
Else:
Range("D23").Value = 0
Range("f23").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D23")
End If
If Range("F8") <= Range("SetNumberkW") Then
Range("D24").Value = 0
Else:
Range("D24").Value = 0
Range("F24").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D24")
End If
If Range("F9") <= Range("SetNumberkW") Then
Range("D25").Value = 0
Else:
Range("D25").Value = 0
Range("F25").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D25")
End If
If Range("F10") <= Range("SetNumberkW") Then
Range("D26").Value = 0
Else:
Range("D26").Value = 0
Range("F26").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D26")
End If
If Range("F11") <= Range("SetNumberkW") Then
Range("D27").Value = 0
Else:
Range("D27").Value = 0
Range("F27").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D27")
End If
If Range("F12") <= Range("SetNumberkW") Then
Range("D28").Value = 0
Else:
Range("D28").Value = 0
Range("F28").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D28")
End If
If Range("F13") <= Range("SetNumberkW") Then
Range("D29").Value = 0
Else:
Range("D29").Value = 0
Range("F29").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D29")
End If
If Range("F14") <= Range("SetNumberkW") Then
Range("D30").Value = 0
Else:
Range("D30").Value = 0
Range("F30").GoalSeek Goal:=Range("SetNumberkW"), ChangingCell:=Range("D30")
End If
당신이 코드를 작업 한 경우는 질문을 게시해야한다 대신 [codereview.se]로 변경하십시오. 이 사이트는 문제 코드에 대한 질문입니다. –