2014-12-01 2 views
0

vba 함수를 사용하여 대체 함수를 하나의 패턴을 여러 패턴으로 대체하는 것을 확장하는 방법은 무엇입니까?vba에서 연쇄 대체 함수를 정의하는 방법

대체 결과 (cell, pattern, replacement, instancenumber) 대신 sub2 (cell, pat1, replacement1, pat2, 대체 2, pat3, 대체 3)와 같은 함수를 정의 할 수 있습니까? ..)?

감사합니다.

답변

1

ParamArrays을 사용하면 원하는만큼 많은 인수를 전달할 수 있습니다.

Substitute Range("A1"), "find1", "replace1", "find2", "replace2", "find3", "replace3" 
: 다음과 같이 보일 것입니다, 그것을 호출 이제

' patternReplacements are expected to have an even number of arguments. 
' The even param (0, 2, etc) would be the search text and the odd (1, 3, etc) the respective replacement text. 
Public Sub Substitute(ByVal cell As Range, ParamArray patternReplacements() As Variant) 
    Dim text As String 
    text = cell.Value 

    ' Perform text replacements. 
    ' Note - No logic here ensures an even number of arguments are passed, this could be easily added though. 
    Dim i As Integer 
    For i = 0 To UBound(patternReplacements) Step 2 
     text = Replace(text, patternReplacements(i), patternReplacements(i + 1)) 
    Next 

    cell.Value = text 
End Sub 

: 여기에서 사용자 정의 로직을 수행하기 위해 배열의 값을 해석