5
Excel2003에서 매크로를 작성하여 통합 문서의 수식이있는 셀을 모두 찾아서 주소와 수식을 다른 시트의 두 열로 출력합니다.excel vba를 사용하여 셀의 수식을 텍스트로 변환
는 내가 잘 작동
Public Function ShowFormula(cell As Range) As String
ShowFormula = cell.Formula
End Function
를 사용하여 개별 셀의 수식을 표시 할 수 있습니다 알고 있지만, 나는 손으로 모든 셀을 찾아야하지 않았기 때문에, 나는 다음과 같은 매크로를 썼다 그것은 모든 셀 잘, 대신 텍스트로 공식을 표시하는 찾아 내게
Sub Macro2()
Dim i As Integer
Dim targetCells As Range
Dim cell As Range
Dim referenceRange As Range
Dim thisSheet As Worksheet
Set referenceRange = ActiveSheet.Range("CA1")
With referenceRange
For Each thisSheet In ThisWorkbook.Sheets
If thisSheet.Index >= referenceRange.Parent.Index Then
Set targetCells = thisSheet.Cells.SpecialCells(xlCellTypeFormulas, 23)
For Each cell In targetCells
If cell.HasFormula Then
.Offset(i, 0).Value = thisSheet.Name
.Offset(i, 1).Value = cell.Address
.Offset(i, 2).Value = CStr(cell.Formula)
i = i + 1
End If
Next
End If
Next
End With
End Sub
위해 그들 모두를 찾기 위해 목록 수식 결과를 표시합니다.
수식 대신 텍스트로 수식을 출력하려면 무엇이 누락 되었습니까?
감사하십시오! 당신의 대답에 대한 빠른 질문. 이것이 작동하는 동안,'= A1 + B2 + C3 + ... '를 출력합니다. 나는 나중에 다른 수식으로 플러그인을 다시 계획하고 있는데이 경우 " '"을 제거해야합니다. 텍스트 형식을 강요하지 않고이를 수행 할 수있는 방법이 있습니까? 왜 매크로가 아닌 UDF에서 작동하는지 궁금합니다 ...? –
" '"을 제거하는 것은'Right (s, Len (s) - 1) '이지만 사소한 것이지요. 수정되지 않은 수식을 붙여 넣기 전에 대상 셀의 형식을 텍스트로 설정하여 어떻게 진행되는지 볼 수 있습니다. –
텍스트 서식 지정이 트릭을했습니다. 너무 단순하지만 아직 나에게 일어나지 않았다. (많은 감사! –