2016-07-08 1 views
-3

미안 어디에서 시작해야할지 모르겠으므로이 문제를 보여줄 기본 코드가 없습니다.VBA에서 통화 형식으로 지정된 모든 행 (특정 통화에 대해 £)에 모든 셀을 추가하려면 어떻게합니까?

나는 단지 =sum(AA+AD+AG...ad nauseum)처럼 보이는 스프레드 시트를 정리하려고합니다. 나는 이것을 할 수있는 더 좋은 방법이 있다고 생각한다.

각 행에 추가하려는 숫자가 포함 된 셀이 여러 개 있지만, £로 포맷 된 셀만 있습니다.

또한 열을 아래로 이동하고 작업 할 수 있어야합니다.

답변

0

원하는 항목을 찾으려면 =CELL("format",A1)을 사용해야하고, 통화 및 일반용으로 C2 대 G를 사용해야합니다. 그래서 도우미 열 간단한 SUMIF는 left(range("a1").Text,1)

+0

안녕하세요. Nathan, 조언 해 주셔서 감사합니다. 나는 이미 이것을 시도한 다음 = sumif (A1 : BH1, "C0-")와 같은 것을 따라 갔지만 이것은 작동하지 않는다. 나는 계속 0이야. 당신은 이것에 대한 어떤 제안이 있니? 난 그냥 vba를 사용하는 것이 더 나은 선택일지도 모른다고 생각했다. ... – SWiM

+0

A에 데이터를 추가 한 다음 B 열에 채웠다. CI에 = cell ("format", a1)을 추가했다. $ 1 : $ A $ 5) * - ($ B $ 1 : $ B $ 5 = "C2"))'또는'SUMIF (B1 : B5, "C2", A1 : A5) ' –

+0

아, 알겠습니다. 나는 그것을 시도하고 작동하지만 헬퍼 컬럼을 필요로하지 않고 그것을 할 수 있기를 바란다. 의견 있으십니까? 다른 사람과 구별하기 위해 사용할 수있는 통화 셀/값의 형식에 고유 한 것이 있습니까? – SWiM

0

당신은 UDF¹을 사용할 수 있습니다 사용할 수 있습니다 VBA에서 VBA

에 대한 필요성을 의미합니다.

gbp_sumif


Function subtotalCurrency(rng As Range, _ 
       Optional smbl As String = "£") 
    Dim txt As String, ttl As Double, c As Range 
    For Each c In rng 
     If CBool(InStr(1, c.Text, smbl, vbBinaryCompare)) Then 
      txt = Trim(Replace(c.Text, smbl, vbNullString)) 
      If IsNumeric(txt) Then 
       subtotalCurrency = subtotalCurrency + CDbl(txt) 
      End If 
     End If 
     Debug.Print c.Text 
    Next c 
End Function 

사용자 정의 기능 (UDF 일명)가 표준 코드 모듈 시트에 배치 ¹. Alt 키 + F11 탭 및 VBE 열리면 즉시 삽입 ► 모듈 (Alt 키 + I, M ) 풀다운 메뉴를 사용한다. 기능 코드를 Book1-Module1 (코드)과 같은 새로운 모듈 코드 시트에 붙여 넣습니다. 워크 시트로 돌아 오려면 Alt + Q을 누르십시오.

관련 문제