Set CLPwb = Workbook.Open("C:\Users\" & Environ("USERNAME") & "\Desktop\" & "Duma_6_C93635_9") 错误时为什么 , 该如何解决?
时间: 2023-07-29 22:11:58 浏览: 149
在 VBA 中,打开工作簿应该使用 `Workbooks.Open` 方法而不是 `Workbook.Open`。因此,将代码中的 `Workbook.Open` 修改为 `Workbooks.Open` 应该可以解决这个问题。
以下是修改后的代码示例:
```vba
Dim CLPwb As Workbook
Dim filePath As String
filePath = "C:\Users\" & Environ("USERNAME") & "\Desktop\Duma_6_C93635_9.xlsx"
Set CLPwb = Workbooks.Open(filePath)
```
这样修改后,应该能够成功打开指定路径下的工作簿。请确保文件路径正确,并且文件存在于指定路径中。如果仍然遇到问题,请提供更多的错误信息,以便我们进一步帮助您解决问题。
相关问题
PO_Num = C93635_13 filePath = "C:\Users\" & Environ("USERNAME") & "\Desktop\ExportPo_" & PO_Num & ".xlsx" CLPwb = Workbooks.Open(filePath) 为什么运行到最后一句会出错误, CLPwb 的值时 Nothing?
在 VBA 中,当使用 `Workbooks.Open` 方法打开一个工作簿时,应该将返回的工作簿对象赋值给一个变量,而不是使用等号进行赋值。因此,你需要使用 `Set` 关键字来为 `CLPwb` 变量赋值。
以下是修改后的代码示例:
```vba
Dim CLPwb As Workbook
Dim filePath As String
Dim PO_Num As String
PO_Num = "C93635_13"
filePath = "C:\Users\" & Environ("USERNAME") & "\Desktop\ExportPo_" & PO_Num & ".xlsx"
Set CLPwb = Workbooks.Open(filePath)
```
通过使用 `Set` 关键字,将工作簿对象赋值给 `CLPwb` 变量,确保 `CLPwb` 不会为 `Nothing`。这样,你就可以在后续的代码中使用 `CLPwb` 对象进行操作。
请确保文件路径正确,并且文件存在于指定路径中。如果仍然遇到问题,请提供更多的错误信息,以便我们进一步帮助您解决问题。
Vb中 Set xlWBbook = xlWBbooks.Open(Filename:=FilePath & Filename1, ReadOnly:=False)
在Visual Basic (VBA) 中,`Set xlWBBook = xlWBbooks.Open(Filename:=FilePath & Filename1, ReadOnly:=False)` 是用来通过文件路径打开一个Excel工作簿的语句。这里是一些关键点的解释:
1. **Set** 关键字用于声明并初始化一个新的变量 `xlWBBook`,这是对 `Workbook` 对象的引用。
2. `xlWBbooks.Open` 是 `Workbook` 类的一个方法,它负责打开指定的工作簿。
3. `Filename:=FilePath & Filename1` 是一个参数,其中 `FilePath` 和 `Filename1` 分别代表工作簿的完整文件路径和文件名。`&` 运算符用于字符串连接,将两个路径组合在一起。
4. `ReadOnly:=False` 参数表示以写入模式打开工作簿,如果设置为 `True` 则会以只读模式打开。
这是一个示例,展示了如何在VBA中执行这个操作:
```vb
' 假设 FilePath 变量存储了工作簿的根目录,例如 "C:\MyFiles\",而 Filename1 存储了具体的工作簿名称 "example.xlsx"
Dim FilePath As String
Dim Filename1 As String
Dim xlWBBook As Workbook
FilePath = "C:\MyFiles\"
Filename1 = "example.xlsx"
' 打开工作簿
Set xlWBBook = Workbooks.Open(Filename:=FilePath & Filename1, ReadOnly:=False)
```
阅读全文