Excel: cartella di lavoro di apertura - excel, vba, excel-vba, foglio di lavoro

Private Sub CommandButton1_Click()
...
Set wb = Workbooks.Open(Filename:="C:book1.xls")
If MsgBox("Please Review the Transmittal sheet, if satisfied click Yes to send,  No to cancel." & vbCrLf & "Transmittal Number: " & Transm, vbYesNo) = vbNo Then
...
End Sub

Il problema è questo, sto cercando di aprire una cartella di lavoroda dentro un'altra cartella di lavoro. La seconda cartella di lavoro si apre ma solo fino a un certo punto: lo schermo è bianco come se fosse in attesa di completamento.

Il mio codice passa alla riga successiva con msgboxprompt, una volta selezionato Sì o No e completata la routine secondaria, la seconda cartella di lavoro si apre completamente mostrando i suoi dati. Non si apre correttamente quando chiamato all'interno della routine secondaria, non sotto la routine secondaria viene eseguita completamente

Qualche idea, perché?

Più di tutto sto cercando di capire una soluzione peril seguente scenario. L'utente apre la cartella di lavoro excel, fa clic su un pulsante nel foglio che apre un modulo utente. L'utente seleziona alcune informazioni nella casella combinata e in base a tali selezioni il foglio excel viene compilato con i relativi dati. Una volta riempito, l'utente fa clic su un pulsante per generare un rapporto basato sulle informazioni contenute nella cartella di lavoro di Excel. Prima di inviarlo, l'utente deve controllare e confermare che i dati siano corretti sulla cartella di lavoro di Excel, quindi viene richiesto con un messaggio di posta elettronica che chiede loro di farlo: fare clic su Sì se i dati sono corretti, no se non. Ma con il modulo msgbox e utente, non possono accedere alla cartella di lavoro di Excel. Il mio pensiero su questo era aprire una nuova cartella di lavoro e copiare i dati dalla cartella di lavoro corrente permettendo all'utente di vederla in quel modo. Forse hai un modo migliore per farlo.

Si prega di notare che il codice originale non è mio, quindi sto solo correggendo bug, questo particolare bug è che l'utente non può concentrarsi sul foglio di lavoro Excel a causa della forma utente e di msgbox.

Jim

risposte:

0 per risposta № 1

Non sei sicuro di quale sia il tuo problema esatto, ma se vuoi richiedere Sì / No DOPO che un foglio viene "letto":

macro # 1 (situata in "Thisworkbook" sull'editor VB):

Private Sub Workbook_Open()
Sheets("Transmittal sheet").Activate "or whatever the sheet"s name
End Sub

Questo costringerà l'utente a visualizzare questi fogli di lavoro sullo schermo quando viene aperta la cartella di lavoro. Successivamente, la macro # 2 (situata in "Foglio di trasmissione" (Foglio X)) "ripeterà qualsiasi nome / numero di foglio:

Private Sub Worksheet_Deactivate()
Set wb = Workbooks.Open(Filename:="C:book1.xls")
If MsgBox("Please Review the Transmittal sheet, if satisfied click Yes to send,  No to cancel." & vbCrLf & "Transmittal Number: " & Transm, vbYesNo) = vbNo Then
End Sub

This will prompt when the user trying to move lontano dal foglio di lavoro. Un'alternativa è posizionare la seconda macro sotto workbook_beforeClose dipende da come procede la situazione. Ancora una volta è meglio se puoi chiarire che cosa esattamente vorresti ottenere.


0 per risposta № 2

Non riuscivo a trovare una soluzione adatta a questo, il msgbox sembra bloccare eccellere completamente e non ero in grado di visualizzare il nuovo foglio di lavoro.

Quindi il lavoro attorno a me è stato quello di esportare il foglio di lavoro corrente come PDF e mostrarlo.

   Dim pdfFile As String
pdfFile = Get_Temp_File_Name(sExtensao:="pdf")

ThisWorkbook.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=pdfFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
" Allow time for PDF to be created and loaded
Application.Wait (Now + TimeValue("0:00:10"))
GoTo PreviewSkip

TrapPreview:
MsgBox Err.Description

PreviewSkip:

If MsgBox(...

Io uso anche il codice da Set di titoli Excel per generare il nome del file temporaneo con estensione pdf.

Grazie per l'input di tutti. Jim


Menu