2014-11-12 2 views
0

내 워크 시트에는 수백 가지의 수식 (단순 및 배열)이 있습니다. 일부 셀에는 배열 수식과 간단한 수식이 들어 있습니다. 모든 수식에서 일부 문자를 일괄 수정 (& 대체)해야했습니다. 메모장에 텍스트로 내 보낸 다음 대체 작업을 수행하여 다시 가져 와서 워크 시트에 붙여 넣었습니다. '시트 계산'또는 alt + ctrl + f9를 누르면 배열 수식이 업데이트되지 않습니다. 모든 수식을 업데이트 (새로 고침) 할 수있는 방법이 있습니까? 아니면 하나씩 가서 Ctrl + Shift + Enter 키를 눌러야하나요? 내가 가지고있는 세포의 수를 고려할 때 그것은 실현 가능하지 않다. VBA로 어떻게 할 수 있습니까? 감사합니다.워크 시트의 모든 배열 수식을 Excel에서 대량으로 업데이트하십시오.

+0

CSE로 한꺼번에 여러 개의 수식을 작성하는 방법을 모르겠습니다. 아마도 그것은 VBA에서 가능합니다. 제가 매우 흥미를 느끼는 것은 당신이 "수백 가지의"고유 한 배열 수식을 가진 쉬트를 만들 수 있다는 것입니다! 저건 시트 야! 연결된 그룹 중 하나에 배열을 입력 한 다음 나머지 셀을 만들기 위해 다른 셀로 복사하기위한 기초로 사용할 수있는 이들 중 하나를 연결하는 것은 실제로 없습니까? –

+0

사실, 내 질문에 난 그냥 수식의 수를 매우 낮은 추정치를 넣고, 고유 수식의 총 수는 수천 개가 넘는다. 그 중 대부분은 배열이다. 일부 문자와 열 이름을 모두 일괄 편집해야했습니다. 그래서 편집장으로 옮겼습니다. 이제는 비 기능 배열 수식이 붙어 있습니다. 수식은 거의 연결되어 있지 않습니다. 각 수식의 매개 변수 수는 다르며 뚜렷한 추세를 따르지 않습니다. – AHC

+0

Excel에서 바꾸기 기능을 사용할 수 없습니까? – Rory

답변

2

이렇게 루틴이 필요합니다. 소리가 나면 마지막에 다시 계산하는 데 시간이 걸릴 수 있습니다!

Sub AddErrorHandler() 
    Dim rngFormulas   As Range 
    Dim rngCell    As Range 
    Dim lngCalcMode   As Long 

    On Error Resume Next 
    Set rngFormulas = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas) 
    On Error GoTo 0 

    If Not rngFormulas Is Nothing Then 
     With Application 
      .ScreenUpdating = False 
      lngCalcMode = .Calculation 
      .Calculation = xlCalculationManual 
     End With 
     For Each rngCell In rngFormulas.Cells 
      If LCase$(Left$(rngCell.Formula, 9)) <> "=iferror(" Then 
       If rngCell.HasArray Then 
        With rngCell.CurrentArray 
         .FormulaArray = "=IFERROR(" & Mid$(.FormulaArray, 2) & ",0)" 
        End With 
       Else 
        With rngCell 
         .Formula = "=IFERROR(" & Mid$(.Formula, 2) & ",0)" 
        End With 
       End If 
      End If 
     Next rngCell 
     With Application 
      .Calculation = lngCalcMode 
      .ScreenUpdating = True 
     End With 

    End If 
End Sub 
관련 문제