엑셀 VB에서 코드에 약간 문제가 있습니다. 내 목표는 다음 if 문을 VBA 매크로로 변환하는 것입니다.Excel VBA If ElseIF else
는 IF 문 :
'=IF(R8="W",
'IF(L8>0,L8,
'IF(ABS(L8)<ABS(V7),L8,
'IF(N8+L8<0,L8+Z7,-V7))),
'IF(R8="A",
'IF(L8>0,(V7/(V7+Z7)*L8),
'IF(ABS(V7/(V7+Z7)*L8)>V7,-V7,(V7/(V7+Z7)*L8))),
'Added H not tested it yet
'IF(AND(R9="H",-L9>Z8),Z8+L9,0)
'IF(R8="C",
'IF(L8>0,L8/2,
'IF(AND((-L8/2)<V7,(-L8/2<Z7)),L8/2,
'IF(AND(V7<=0,Z7<=0),L8/2,
'IF(Z7+L8>0,-V7,-V7+(L8+Z7+V7)/2)))),0)))
내가 뭘 원하는 열 R의 W가있는 경우 열 L의 양이 제로 대단한 경우 true의 경우, 나는 그것을 검사 할 것입니다 L 열의 금액을 반환합니다. false 인 경우 열 L의 금액의 절대 값이 V 열의 금액 절대 값보다 작은 지 확인합니다. true 인 경우 열 L의 금액을 반환하고 그렇지 않으면 N 열의 금액을 합계합니다 합계가 0보다 작 으면 열 L과 Z의 금액의 합계를 반환합니다. 거짓 인 경우 열 v의 금액을 반환합니다 (음수로 만듭니다).
내 문제를 해결하려는 시도입니다.
Private Sub looping()
Dim rw_cnt As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
rw_cnt = 8
Do While Sheets("Personal").Range("R" & rw_cnt).Value <> ""
If Sheets("Personal").Range("R" & rw_cnt).Value = "W" Then
'I am having difficulties on this section.
Sheets("Personal").Range("V" & rw_cnt).Select
If "=RC[-8]" > 0 Then
ActiveCell.FormulaR1C1 = "=RC[-8]"
ElseIf Abs("=RC[-8]") < Abs("=R[-1]C[2") Then
ActiveCell.FormulaR1C1 = "=RC[-8]"
ElseIf ("=RC[-6]" + "=RC[-8]") < 0 Then
ActiveCell.FormulaR1C1 = "=RC[-8]" + "=R[-1]C[6"
Else
ActiveCell.FormulaR1C1 = "=-R[-1]C[7"
End If
Sheets("Personal").Range("Z" & rw_cnt).Select
ActiveCell.FormulaR1C1 = "=0"
End If
rw_cnt = rw_cnt + 1
Loop
MsgBox ("Done!!!")
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
미리 감사드립니다. 난 당신이 정확하게 뭘 하려는지 이해한다면
https://i.stack.imgur.com/4KiVg.png
당신은 셀에 수식을 삽입하려고하거나 셀에 실제 값을 배치하려고 다음은 코드의 "엄격한"버전입니까? – YowE3K
그리고 당신이 보여준 비트 (또는 적어도')')가 맞은 후에 바꿀 Excel식이', 거짓 (FALSE)'이라고 가정합니다 - 그것이 맞습니까? 또는 열 R에 "W"가 포함되지 않은 경우 열 T의 현재 값을 변경하지 않도록 매크로를 작성하려고합니까? – YowE3K
결과를 넣으려고하는 열은 무엇입니까? (현재 코드는 질문의 수식과 일치하지 않습니다. 예를 들어, 열 T에 코드에 "W"가 포함되어 있는지보고 싶지만 "W"가 포함 된 열 R에 대한 질문이 있습니다. 그리고 코드가 열 V 또는 열 Z,하지만 귀하의 질문에 열 V는 수식에 입력 중 하나라고 등. – YowE3K