Esegui script dopo l'aggiornamento della query Web. Non riesco a farlo funzionare


0

Questo è il codice che ho per il foglio di lavoro. Funziona se scrivo qualcosa in D32, ma se la formula cambia automaticamente il numero non fa nulla. Che cosa sto facendo di sbagliato? Fondamentalmente ho impostato per nascondere una riga se una cella è zero o mostrarla se è un numero positivo.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    ' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("D32")

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        ' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
    If Range("D32").Value = "0" Then
        Rows("32:32").EntireRow.Hidden = True
    ElseIf Range("D32").Value = "<>0" Then
        Rows("32:32").EntireRow.Hidden = False
    End If

    End If

End Sub

Nulla di sbagliato nel Codice ,,, in realtà l' evento Modifica foglio di lavoro controlla il valore in D32, se ZEROil codice si nasconde da Row 32solo e se e in caso diverso da quello Zeronon viene cliccato dopo essere stato nascosto perché D32non è visibile la cella da modificare.
Rajesh S,

Cont ,,, se vuoi liberarti di tutto questo, cambia il Key Cell D32 in uno qualsiasi D30per nascondere e scoprire il Row 32!!. E se in D32te hai inserito la Formula e stai cercando di nascondere Row32se la Formula ritorna, Zeroallora devi usare il foglio di calcolo Calcola evento ma meglio nascondere alcune altre righe invece che Riga ha Formula, poiché dopo aver nascosto non puoi avere la possibilità di modificare il valore in modo che D32diventi<>0
Rajesh S

Cont ,, e la tua sintassi dovrebbe If Range("D32").Value = 0 Then e ElseIf Range("D32").Value <> 0 Then
Rajesh S

Quindi ho provato: Private Sub Worksheet_Calculate () 'Update di Extendoffice Dim Xrg come set di intervalli Xrg = Range ("K39") If Not Intersect (Xrg, Range ("K39")) Is Nothing Then If Range ("K39"). Valore = 0 Quindi righe ("32:32"). InteroRow.Hidden = True ElseIf Range ("K39"). Valore <> 0 Quindi righe ("32:32"). InteroRow.Hidden = False End se End If End Sub ... ma ora continua a
ripetere il

@RajeshS Per favore non scrivere la tua risposta in più commenti. Scrivi invece una vera risposta.
DavidPostill

Risposte:


0

Mathew, prova questo codice, è perfettamente funzionante.

Private Sub Worksheet_Calculate() 

Dim KeyCells As Range 
Set KeyCells = Range("C1") 

If Range("C1").Value = 0 Then 
Rows("3:5").EntireRow.Hidden = True 

ElseIf Range("C1").Value <> 0 Then 

Rows("3:5").EntireRow.Hidden = False 

End If 

End Sub  

NB Regolare i riferimenti cella / riga in base alle esigenze.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.