문제
데이터베이스에 꽤 어려운 Excel 스프레드 시트가 있습니다 (일반 원장 테이블에 대한 100 개 이상의 쿼리 ... Yikes!). 내가 켜져있는 시트 만 새로 고침 (Shift+F9)은 일부 스프레드 시트에서 도움이되지만 선택한 셀을 새로 고치는 방법을 원했습니다. 이 워크 북 객체에 배치 된 다음 코드가 나왔습니다.
Dim currentSelection As String
Private Sub Workbook_Open()
Application.OnKey "+^{F9}", "ThisWorkbook.RecalculateSelection"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
currentSelection = Target.Address
End Sub
Private Sub RecalculateSelection()
Range(currentSelection).Calculate
End Sub
가능하면 XLA 파일에 저장하고 Excel Addin으로로드하는 등 휴대용을보다 휴대용으로 만들고 싶습니다. 내가 사용하는 방법으로 이것이 가능합니까? 이것을 달성하는 더 좋은 방법이 있습니까?
해결책
다음을 사용할 수 있어야합니다.
Public Sub RecalculateSelection()
Dim rng As Range
Set rng = Application.Selection
rng.Calculate
End Sub
사용자가 범위를 선택하지 않았기 때문에 (예 : 차트를 선택했을 수 있음) 'Set RNG'라인 주위에 오류 처리를해야합니다.
응용 프로그램 객체를 사용하면 workbook_sheetselectionchange 이벤트를 캡처 할 필요가 없습니다.
다른 팁
위의 허용 된 답변에서 메소드를 사용하는 경우 먼저 확인해야합니다.
If Not Selection Is Nothing Then
If TypeName(Application.Selection) = "Range" Then
Dim Rng As Range
Set Rng = Application.Selection
Rng.Calculate
End If
End If
또한 시트 및 시트 이름 컨텍스트 메뉴에 추가하고 싶을 수도 있습니다. 당신이해야 할 두 명령 바의 이름은 ... "셀"과 "ply"입니다.
현재 선택된 세포를 다시 계산하려면 그들에게 의존하는 세포를 무시하고 내 rangecalc addin을 사용할 수 있습니다.http://www.decisionmodels.com/downloads.htm
제휴하지 않습니다 StackOverflow