Workbooks.Open "C:\abc.xlsx"
Workbooks("abc").Worksheets("Sheet1").Range("A1:B7").Clear
在上面的代码中,我在第一行中使用Workbooks.Open
打开工作簿。在第二行中,我使用工作簿名称访问打开的工作簿。
如何在第二行中没有文件名的情况下访问打开的工作簿?
(我想创建一个函数,并且我不想分别传递文件路径和文件名)
答案 0 :(得分:4)
您需要使用参考,并参考工作簿和工作表,例如:
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
请注意,您可以根据需要将openworkbook上的参数(例如Updatelinks
和ReadOnly
修改为True
或False
。
答案 1 :(得分:3)
创建类型为Excel.Workbook的对象,然后将其打开。
喜欢
Dim w as Excel.Workbook
set w= Workbooks.Open ("C:\abc.xlsx")
然后你可以说
w.worksheets.add.....
等
答案 2 :(得分:1)
您可以缩短代码:
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
答案 3 :(得分:1)
你可以试试这个
Option Explicit
Sub TEST()
Dim WB As Workbook
Set WB = Workbooks.Open(Filename:="C:\abc.xlsx")
For Each WB In Workbooks
If WB.Name = "abc.xlsx" Then
WB.Worksheets(Sheet1).Range("A1:B7").ClearContents
Exit Sub
End If
Next
End Sub