Domanda

Ho alcuni fogli di calcolo Excel che stanno colpendo il database piuttosto duro (oltre 100 domande contro il tavolo di contabilità generale ... Yikes!). Abbandonare solo il foglio su cui mi trovo (Shift+F9) è utile in alcuni fogli di calcolo, ma volevo un modo per aggiornare solo le celle selezionate. Mi viene inventato il seguente codice, inserito nell'oggetto di questo lavoro:

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

Se possibile, vorrei renderlo più portatile, come archiviarlo in un file XLA e caricarlo come un componente aggiuntivo Excel. È possibile con il metodo che sto usando? C'è un modo migliore per raggiungere questo obiettivo?

È stato utile?

Soluzione

Dovresti essere in grado di utilizzare quanto segue:

Public Sub RecalculateSelection()
    Dim rng As Range
    Set rng = Application.Selection
    rng.Calculate
End Sub

Dovresti effettuare un po 'di errori di gestione attorno alla riga "Imposta RNG", poiché l'utente potrebbe non aver selezionato un intervallo (ad esempio, potrebbero aver selezionato un grafico).

Utilizzando l'oggetto dell'applicazione non è necessario acquisire l'evento WorkBook_SheetSelectionChange.

Altri suggerimenti

Se stai usando il metodo dalla risposta accettata sopra, dovresti prima verificare che ...

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 

Inoltre, si desidera aggiungerlo al foglio e ai menu di contesto del foglio. Il nome delle due barre di comando che devi fare sono ... "cell" e "ply"

Se vuoi solo ricalcolare le celle attualmente selezionate, ignorando le celle che dipendono da esse, puoi usare il mio addin RangeCalc, scaricabile dahttp://www.decisionmodels.com/downloads.htm

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top