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)
3 Réponses :
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.
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
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