excel - 如何在不打开工作簿的情况下引用它
问题描述
我想打开一个新工作簿,并在里面运行一些宏,最后将结果粘贴到新工作簿中。
我尝试了不同的方法来引用其他工作簿路径,因为我需要里面的数据,但是,我不能正确地做到这一点。下面是我的编码:
Sub stepTen()
Dim wbLinelist As String, wsLinelist As String
wbLlinelist = "C:\Users\abc\Excel\trial\ppp.xlsx"
wsLinelist = "Sheet1"
Dim llStyle As Long
Dim colllStyle, As String
With Workbooks(wbLlinelist).Worksheets(wsLinelist)
llStyle = Application.Match("fire", .Rows(1), 0)
colllStyle = Split(Cells(1, llStyle).Address, "$")(1)
End With
End Sub
解决方案
Dim colllStyle, As String
没有有效的语法删除逗号。此处
Cells(1, llStyle).Address
未指定Cells
对象应位于哪个工作簿和工作表中。.Cells(…)
如果您希望它使用该语句,它应该以一个点开头,With
或者您必须指定一个工作簿/工作表。如果
Application.Match("fire", .Rows(1), 0)
不匹配,则返回错误。因此,您必须使用IsError 函数检查它是否匹配或出错:If Not IsError(llStyle) Then 'split Else 'error message End If
最后,您的主要问题是您不能
"C:\Users\abc\Excel\trial\ppp.xlsx"
在Workbooks(wbLlinelist)
. 您必须先使用Workbooks.Open 方法打开工作簿,然后才能访问它。Dim MyOpenWb As Workbook Set MyOpenWb = Application.Workbooks.Open(FileName:=wbLlinelist) 'you might want to open it read only and set the parameter ReadOnly:=True With MyOpenWb.Worksheets(wsLinelist) 'your code End With
最后不要忘记关闭工作簿:
MyOpenWb.Close SaveChanges:=False
推荐阅读
- javascript - 使用 innerHTML 的消息输出
- python - scrapy 将 argu 传递给 selenium
- python - Python (3.7+) 多处理:用 asyncio 替换 master 和 worker 之间的管道连接以实现 IO 并发
- ruby-on-rails - 在 Rails 应用程序构建中跟踪最新的稳定 ruby 版本
- pyevolve - Pyevolve - 染色体总和 = 1
- c# - C#如何操作列表以从不同的字符构建单词?
- list - 在 Prolog 中列出的元组
- c# - Windows 7 中的 appresolver.dll 或类似文件
- python - 查字典内容后在GUI界面显示输出
- php - 如何正确迭代 Mustache 中具有私有属性的对象数组?