Tom*_*y Z 15 excel vba excel-vba
为什么我不能通过这些方式定义工作簿?(我有一个范围位,只是为了快速测试.)我该如何解决?
这会产生一个 "Compile Error: Type Mismatch"
Sub Setwbk()
Dim wbk As Workbook
Set wbk = "F:\Quarterly Reports\2012 Reports\New Reports\ _
Master Benchmark Data Sheet.xlsx"
Range("A2") = wbk.Name
End Sub
Run Code Online (Sandbox Code Playgroud)
这创造了一个 "Runtime Error '91': Object variable or with block variable not set"
Sub Setwbk()
Dim wbk As Workbook
wbk = "F:\Quarterly Reports\2012 Reports\New Reports\ _
Master Benchmark Data Sheet.xlsx"
Range("A2") = wbk.Name
End Sub
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我已经在VBA打了一个月,变得非常复杂,但这让我很难过.我错过了一些基本的东西.
我只想定义一个工作簿,所以我不必全部输入!
Dou*_*ncy 19
这实际上是一个明智的问题.以下是Excel 2010帮助的答案:
"Workbook对象是Workbooks集合的成员.Workbook集合包含当前在Microsoft Excel中打开的所有Workbook对象."
因此,由于该工作簿未打开 - 至少我认为它不是 - 它不能被设置为工作簿对象.如果它打开你只需设置如下:
Set wbk = workbooks("Master Benchmark Data Sheet.xlsx")
Run Code Online (Sandbox Code Playgroud)
Gaf*_*ffi 14
您需要打开工作簿才能引用它.
Sub Setwbk()
Dim wbk As Workbook
Set wbk = Workbooks.Open("F:\Quarterly Reports\2012 Reports\New Reports\ _
Master Benchmark Data Sheet.xlsx")
End Sub
Run Code Online (Sandbox Code Playgroud)
*如果工作簿已经打开,请按照Doug的回答.为了使这个答案尽可能完整,我将对他的回答进行评论:
为什么我要"设置"它?
Set
是VBA如何分配对象变量.由于a Range
和Workbook
/ Worksheet
是对象,因此必须使用Set
这些对象.
归档时间: |
|
查看次数: |
103056 次 |
最近记录: |