2
votes

Comment obtenir le nom du classeur après avoir ouvert le classeur à l'aide de workbooks.open?

Workbooks.Open "C:\abc.xlsx"
Workbooks("abc").Worksheets("Sheet1").Range("A1:B7").Clear
In the above code I am opening the workbook  using Workbooks.Open in first line. In the second line I am accessing the opened workbook using the workbook name. How can I access the opened workbook without the filename in second line?(I want to create a function and I don't want to pass both the file paths and filenames separately)

0 commentaires

3 Réponses :


4
votes

Vous devez utiliser des références et référencer le classeur et la feuille par exemple:

Option Explicit

Sub OpenWorkbook()

   Dim wb As Workbook, ws As Worksheet

   Set wb = Workbooks.Open("C:\abc.xlsx", UpdateLinks:=False, ReadOnly:=True)
   Set ws = wb.Sheets("Sheet1")

   ws.Range("A1:B7").ClearContents

End Sub

Notez que les paramètres sur le classeur ouvert tels que Updatelinks et ReadOnly peut être modifié en True ou False selon vos besoins.


0 commentaires

3
votes

Créez un objet de type Excel.Workbook et ouvrez le classeur dedans.

Comme ça

w.worksheets.add.....

et ensuite vous pouvez dire

Dim w as Excel.Workbook
set w= Workbooks.Open ("C:\abc.xlsx")

etc


0 commentaires

1
votes

Vous pouvez raccourcir votre code:

Option Explicit

Sub OpenWb()

    Dim ws As Worksheet

    Set ws = Workbooks.Open("C:\abc.xlsx").Worksheets("Sheet1")

    With ws '<- Use With Statement to avoid sheet repetition
        .Range("A1:B7").ClearContents
    End With

End Sub


0 commentaires