첫 번째 값에서 목록의 후속 숫자를 빼는 VBA 코드


0

나는 숫자 목록을 가지고있다. 목록의 첫 번째 숫자를 시작 값으로 사용하고 VBA를 사용하여 후속 숫자를 뺍니다.

나는 여러 번 실패한 시도를했다.

Function less(rng As Range)
    X = 0

    For Each cell In rng
    X = X - cell.Value

    Next

    less = X

End Function

첫 번째 값을 포함하여 모든 값의 빼기가 발생합니다. 예를 들어, 시퀀스 5,7,3,6에 대해 my 코드는 -21을 제공합니다. 하지만 나는 ~ 11을 기대합니다.

내가 시도한 다른 코드는 다음과 같다.

Function less(rng As Range)
    X = 0

    For Each cell In rng
    X = X + cell.Value
    X = X - cell.Value

    Next

    less = X

End Function

단지 각 값을 오버라이드하여 결과를 0으로 만듭니다.

목록의 첫 번째 값을 시작 값으로 만들고 그 다음 값의 빼기를 수행하려면 어떻게합니까?

나는 여기에 어떤 값의 부호에 대해서도 관심이 없다. 첫 번째 값으로 시작하여 후속 값을 빼는 논리적 인 순서 일 뿐이다.

참고 : 저는 VBA를 처음 사용하며 이것은 첫 번째 코딩입니다.


3
(1) 귀하의 코드는 그것이하는 일을 정확히 수행하고있는 것으로 보입니다. 뭐가 문제 야? (2) 범위에서 첫 번째 셀을 건너 뛰는 방법에 대한 전체 질문이 있습니까? 그렇다면 더 분명히 말해야합니다. (3) 당신은 VBA를 처음 사용한다고 말합니다. 일반적으로 프로그래밍을 처음 사용하십니까? 잘 알고있는 프로그래밍 언어로 문제를 해결하려면 어떻게해야할까요? Pleasedonot이 의견으로 응답합니다. 편집하다 귀하의 질문은 명확하고 더 완벽하게 이해합니다.
Scott

범위에 -5, 7, -3, 6 값이 포함될 경우 어떤 결과가 예상되는지 분명히 물어볼 수 있습니까? Btw, 초등 수학에서 음의 값을 빼는 것은 같은 양의 값을 가하는 것과 같습니다. 그래서 x - -1 = x + 1입니다. 그렇습니까?
Tom Brunberg

스콧 내가 내 질문을 편집했다, 난 그냥 범위의 첫 번째 값을 건너 뛰는 솔루션이 필요합니다.
Deepak Aggarwal

Tom에게는 나는 그것을 잘 알고 있습니다. 주어진 값의 결과는 -21이 될 것이고 나의 코드는 똑같을 것이다. 그러나 범위 5,7,3,6에 대해서도 제 코드는 -21을줍니다. 하지만 나는 ~ 11
Deepak Aggarwal

1
질문에서 샘플 코드를 제거한 이유는 무엇입니까? 우리가 당신을 이해하는 것이 더 어렵게하고 싶습니까?
teylyn

답변:


1

편집 (fixer1234에 의한 코멘트 이후)

귀하의 질문을 "뺄셈에서 첫 번째 값을 건너 뛰기 만 시작 값으로 포함 시키십시오"라고 해석하는 것은 다음과 같은 기능으로 달성 할 수 있습니다 :

Function less(rng As Range)
    Dim x, i As Integer
    Dim cell As Range

    For Each cell In rng
      If cell.Address = rng.Cells(1, 1).Address Then
        x = cell.Value
      Else
        x = x - cell.Value
      End If
    Next

    less = x
End Function

이것은 또한 범위 5, 7, 3, 6은 -11을 산출해야한다고 말한 귀하의 의견에 따를 것입니다


5 - 7 - 3 - 6 = - 11. -5 -7 - 3 - 6 = -15. -16과 -10이 각각 나오면 잘못된 것입니다.
fixer1234

@fixer OP 질문 : 범위에서 첫 번째 셀 값을 건너 뛸 수있는 모든 솔루션 , a) 건너 뛰기 5 - 7 - 3 - 6 = -16 그리고 b) 건너 뛰기 -5, 그런 다음 -7 - 3 - 6 = -10
Tom Brunberg

질문에 대한 OP의 의견을 참조하십시오. 첫 번째 항목을 건너 뛰는 것으로 시작점으로 산술의 첫 번째 항목을 포함시키고 첫 번째 항목을 빼기보다는 다른 항목을 빼는 것을 의미한다고 생각합니다. 그것이 OP의 코드가 수행 한 것이며 수정하려는 작업입니다. 나는 이미 질문을 분명히하기 위해 투표를했다. 여기에 용감한 노력, 그리고 OP가 사물을 분명히한다면, 당신은 옳은 것으로 드러나거나 노력을 구제 할 수 있습니다. :-)
fixer1234

@ fixer1234 당신이 말한대로 질문을 재 해석하는 것이 옳을 가능성이 큽니다.
Tom Brunberg

문제의 해결사를 확인해주십시오. "질문에 대한 OP의 코멘트를 참조하십시오. 첫 번째 항목을 건너 뛰는 것은 산술의 첫 번째 항목을 시작점으로 포함시키고 첫 번째 항목을 빼는 대신 다른 항목을 빼는 것을 의미한다고 생각합니다. 시작 값 0부터. "
Deepak Aggarwal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.