2014-12-09 3 views
0

내 (상당히 복잡한) Excel 통합 문서에서 나는 많은 사용자 정의 함수를 사용하고 있습니다. 이 문제없이 작동합니다.사용자 정의 함수의 이름을 바꾸는 방법

이제는 처음에 선택한 함수 이름 중 일부가별로 좋지 않기 때문에 이러한 함수의 이름을 변경하고 싶습니다. 통합 문서의 수식에있는 사용자 정의 함수의 이름이 자동으로 변경되지 않기 때문에 VBA 편집기에서 순진하게 이름을 바꾸면 통합 문서가 더 이상 작동하지 않습니다. 있는 그대로 함수 이름을 떠나는

  1. 내 통합 문서의 모든 워크 시트에있는 모든 단일 수식에 수동 기능을 이름 변경에 대처 :

    나는 이제 두 가지 가능성이있다.

모든 수식에서 모든 사용자 정의 함수의 이름을 바꾸는보다 효과적인 방법이 있습니까? - 잘라는 이름의 기능을 가지는 것은 아주 좋은 방법입니다 (

Sub replaceFormulaNameInWS(ByRef ws As Worksheet, ByVal toReplace As String, ByVal rePlaceBy As String) 
Dim r As Range 
Set r = ws.UsedRange 
For Each cell In r 
If InStr(cell.Formula, toReplace) > 0 Then 
    cell.Formula = Replace(cell.Formula, toReplace, rePlaceBy) 
End If 
Debug.Print cell.Formula 
Next 
End Sub 

답변

2

이동을 2 :

+0

수식을 바꿀 수 있는지도 몰랐습니다. Excel에서 "이름 바꾸기 함수 이름"기능이 없기 때문에 한 번에 모든 이름을 바꿀 수 있습니다. 그러나 당신의 해결책은 나를 위해 일합니다. –

1

나는 당신이 대체 당신이 값을주의하면서, 기능 이런 종류의 모든 워크 시트의 모든 셀을 구문 분석 할 것 같아요 당신은 그들이 지금 무엇을 의미하는지 알 수 있습니다. 그러나 6 개월 후에는 다른 사람이 보살펴야합니까?)

처음 작업 - 이름을 바꾸십시오. 충분히 쉬워. 둘째, 함수가 호출되는 VBA의 모든 곳을 찾습니다. Ctrl+F을 누르고 Current Project을 선택하고 함수 이름을 검색하십시오.

마지막으로 통합 문서에서 기본적으로 동일한 작업을 수행 할 수 있습니다. Ctrl-F을 클릭하고 Replace 탭으로 이동하십시오. Within이 통합 문서로 설정되고 Look in이 수식으로 설정되어 있는지 확인하십시오. 당신이있는 경우 -

Cells.Replace What:="OldFunctionName", Replacement:="NewFunctionName", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 

그러나, 당신이를 교체하고 값 무슨주의 :이 이후

는 & 통합 문서에서 바꾸기 찾기 위해 나는 VBA 솔루션을 게시하지 태만 느낄 것, StackOverflow에있다 함수 이름이 Function a() 인 경우 에서 대체하려면 &을 대체하면 모든 종류의 문제가 발생할 수 있습니다.

관련 문제