Modifica un sub VBA privato esistente? [chiuso]


-2

Ho scritto una macro lungo la linea:

Private Sub Worksheet_Activate()
   Some code
End Sub

Ha funzionato bene durante il test e quindi è stato rilasciato. Dopo il feedback degli utenti, ora ho bisogno di modificare la macro ma non riesco a scoprirla perché non apparirebbe nell'editor VBA.

C'è un modo per scoprire il Sub, modificarlo e nasconderlo di nuovo (la distribuzione richiede che le macro siano il più infallibili e ben nascoste)?

Mille grazie in anticipo, K.


1
Ciao, benvenuto su SuperUser. Un po 'più di informazioni ti aiuterà a ottenere una risposta più rapidamente; un sottotitolo privato è nascosto solo dall'elenco delle macro che un utente può visualizzare quando seleziona la funzione Macro, la macro deve comunque essere visualizzata nella raccolta progetti. Dove si trova la macro? Su un foglio o su questa cartella di lavoro? Il progetto è stato bloccato?
CLockeWork,

Ciao, grazie per la rapida risposta. La macro è contenuta in un foglio di lavoro della cartella di lavoro specifica AFAIK (probabilmente questa cartella di lavoro) ma ovviamente ora è difficile da riprodurre :-( La cartella di lavoro è bloccata quando distribuita ma essendo l'autore, modifico le macro in stato sbloccato e la descrizione si riferisce allo stato sbloccato
user239762

1
sai a quale foglio di lavoro è legato il codice? Il Worksheet_Activateè per un foglio di lavoro specifico, e non sembrerebbe in un modulo separato
SeanC

Non hai una copia di sviluppo di backup del tuo progetto? Perché non lavorare da lì e quindi riconfezionarlo per il consumo dell'utente?
Eccellente il

Sei sicuro che non ci sia PERSONAL.xlsb- controlla l'editor VBA
Raystafarian

Risposte:


2


Credo che tu abbia nascosto il tuo codice selezionando il blocco di codice, facendo clic con il tasto destro e premendo Nascondi nel menu di scelta rapida. Questo lascerà il foglio visibile ma nasconderà il codice. Per annullare l'operazione, selezionare il foglio in cui dovrebbe trovarsi il codice, fare clic con il tasto destro e selezionare Visualizza codice dal menu di scelta rapida, questo riporterà il codice.



Nascondere il codice di un Sottotitolo privato significa che se qualcuno non lo sapesse, penserebbe che non ci sia un codice, in quanto non avrebbe modo di individuarlo. Invece di nascondere il codice:


vai su Proprietà progetto VBA in Strumenti
Progetto VBA


Quindi, nella scheda Protezione, seleziona Blocca progetto per la visualizzazione e aggiungi una password . Protezione


Quindi chiudi la finestra dello sviluppatore e riavviala. Assicurati di fornire la password del progetto ad altri membri del tuo team, poiché non c'è modo di aggirarlo.



Ora il tuo codice sarà accessibile solo a quelli con la password giusta, ma il tuo codice sarà visibile a chi ne ha bisogno.


Grazie per la risposta. Tuttavia, questo non è il caso. Ho aperto il codice del foglio di lavoro utilizzando Visualizza codice, ho inserito la mia macro (combinazione di frammenti dal Web e il mio codice), testata, protetta come descritto e inviata. Dopo aver provato a modificare, il codice del foglio di lavoro (dopo aver rimosso la protezione) appare vuoto ma la macro funziona. In effetti, nella finestra VBA posso aggiungere un nuovissimo foglio di lavoro_Attiva routine ... dispari .... Se questo è di qualche importanza, lavoro in Excel 2003 (e 2003 VBA) per motivi di compatibilità, per coprire la maggior parte dei destinatari del modulo.
user239762

Molto strano. L'unica cosa che so che potrebbe farlo funzionare ancora è se è ancora lì, come nascosto. Quindi hai sbloccato il progetto e hai provato a fare doppio clic su ciascun foglio per visualizzare la tabella codici, quindi fare clic con il pulsante destro del mouse in Esplora progetti e fare clic su Visualizza codice e il codice non viene ancora visualizzato nella tabella codici? Perdonami per averlo chiesto, ma puoi ricontrollare che stai guardando il progetto giusto? Con il mio libro personale nell'elenco,
finisco

Inoltre, ho fatto un rapido test ed è possibile avere più di un foglio di lavoro_Attivare il codice in un singolo foglio, quindi non dobbiamo preoccuparci di quel bit almeno :)
CLockeWork

È sicuramente la stessa cartella di lavoro (solo una su cui lavoro attualmente), e ho fatto come descrivi, senza alcun risultato. Grazie per l'ultima risposta, tuttavia, sembra funzionare, ho aggiunto il vecchio + nuovo codice a un nuovo Worksheet_Activate Sub, questa volta non privato. Disordinato ma dovrà fare. Ancora curioso da dove provenga il bug ...
user239762

Davvero molto strano, come ho detto, Private non nasconde il sottotitolo nel Progetto, ma solo nell'elenco Macro. Mi dispiace non potrei essere di maggiore aiuto.
CLockeWork,
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.