J'ai une macro Outlook qui fonctionne pour exporter les utilisateurs Tasklist
vers une feuille de calcul Excel stockée sur un lecteur réseau. Je tente de vérifier si un classeur est déjà présent dans le répertoire (If statement taken form here).Erreur d'exécution lors de la tentative de suppression d'une feuille de calcul d'un classeur nouvellement créé - Outlook VBA
S'il n'y a pas un, puis faire un nouveau classeur avec une feuille de calcul appelée « Feuille 1 », et s'il y a déjà un avec le nom d'utilisateur, puis ouvrez (add statement taken from here):
Dim FilePath As String
Dim TestStr As String
Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook
Dim NAME_s As String
objExcel.DisplayAlerts = False
'Use the Application Object to get the Username
NAME_s = Environ("USERNAME")
FilePath = "the\directory\" & NAME_s & ".xlsx"
TestStr = ""
On Error Resume Next
TestStr = Dir(FilePath)
On Error GoTo 0
If TestStr = "" Then
Set exWb = objExcel.Workbooks.Add(1)
exWb.Worksheets(1).Name = "Sheet1_old"
Else
Set exWb = objExcel.Workbooks.Open("J:\Efficiency Measures\PTaR\" & NAME_s & ".xlsx")
End If
exWb.Sheets.Add().Name = "Sheet1"
exWb.Sheets("Sheet1_old").Delete
Lorsque je parcours l'instruction If, la valeur TestStr déclenche la première condition, ce qui est correct, mais la ligne exWb.Sheets("Sheet1").Delete
déclenche une erreur d'exécution (le classeur doit contenir au moins une feuille visible). Mais je pensais qu'avoir le objExcel.Workbooks.Add(1)
ajouterait un nouveau classeur au répertoire spécifié avec une feuille de calcul appelée "Feuille 1".
Comment puis-je modifier le code ci-dessus pour m'assurer que le nouveau classeur généré porte le nom «Sheet 1» et est enregistré dans l'emplacement nework spécifié dans la variable FilePath
?
Vous ne pouvez pas supprimer la seule feuille du classeur - Excel ne « savoir » ne vous allez ajouter un dos ... Commencez par renommer « Sheet1 » à "Sheet1_old", puis ajouter la nouvelle feuille, puis supprimer "Sheet1_old" –
@TimWilliams - Merci pour cela, mais comment puis-je modifier le code ci-dessus pour renommer la feuille? J'ai mis à jour le code ci-dessus pour montrer où j'ai mis le changement de nom, mais il montre une erreur 438 - Objet ne supporte pas cette propriété – scb998