Domanda

La prima parte è ora al lavoro [ ho il seguente, che sembra solo per appendere; la parte che aggiunge / cancella il modulo funziona durante l'esecuzione in VBA Prendo atto che sono richiamato con una finestra dicendo 'questa cartella di lavoro contiene collegamenti ad altre fonti di dati', che io ok per, poi si blocca Così ho provato a installare il secondo argomento a 0 e anche provato 2, ma ancora si blocca (2 ° arg è UpdateLinks come può essere trovato qui ) ]

dim objExcel
dim objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(  "H:\M\X\C.xls", 0 , , ,"PASSWORD!" )

Const modpath  = "H:\M\V\"
Const modtest  = "TEST.cls"
Const modname  = "TEST"

On Error Resume Next

Dim vbcomp
Set vbcomp = ActiveWorkbook.VBProject.VBComponents(modname)
objWorkbook.VBProject.VBComponents.Remove vbcomp
objWorkbook.VBProject.VBComponents.Import modpath & modtest

objWorkbook.Save
objWorkbool.Close
set vbcomp = nothing
set objworkbook = nothing
set objExcel = nothing

a cura di nuovo 14/04/2009 Ora ho permesso anche gli 'strumenti - macro - sicurezza - l'accesso VBProject'

Lo script ora finisce, tuttavia, quando si cerca di aprire il xls per vedere se sono state apportate le modifiche, ricevo un messaggio che mi informava che il foglio è bloccato da "account utilizzato per eseguire script"; aperto 'sola lettura' / notify

Perché non è vero rilasciando il controllo correttamente **? **

È stato utile?

Soluzione 3

Lo script a cura funziona.

Il problema è stato causato dal fatto che mi forniva la password a livello di cartella di lavoro e non a livello di progetto VBA.

Una rapida ricerca sul web rivela che non è possibile fare questo in ogni caso (sendkeys ecc) in modo da rimuovere dopo la password manualmente sul progetto, il problema è risolto

Altri suggerimenti

Primo pensiero: La vostra cartella di lavoro contiene già un punto di riferimento (all'interno di VBA) per la libreria "Microsoft Visual Basic per Applications Extensibility"? Avrete bisogno di essere in grado di parlare l'oggetto VBProject. In realtà, probabilmente hanno il riferimento se il codice funziona in VBA.

Secondo pensiero: ActiveWorkbook probabilmente non è definito al di fuori di una cartella di lavoro vero e proprio. Provare a sostituire con il vostro oggetto objWorkbook.

Ecco un terzo pensiero. Hai provato impostando la proprietà DisplayAlerts dell'applicazione per FALSE prima di includere il modulo?

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