문제

데이터베이스에 꽤 어려운 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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top