我想从另一工作簿中检索值的一列,并在当前工作簿中填充一个选项卡。最终,这将进入我编写的效果更好的更长的模块。我只是想让这一步自动化。下面是代码。
我得到一个标超出范围在贴线错误。似乎我的语句设置currentWb
为ThisWorkbook
不起作用,因为要从中复制的第二个工作簿仍处于打开状态,选择并复制了范围,只是在等待目标粘贴。我已经搜索并尝试了所有我能想到的。
Sub OpenWorkbookToPullData()
Dim sUserInput As String
sUserInput = InputBox("Enter Account Folder Name:", "Folder Name")
Dim path As String
path = "C:\users\" & Environ$("username") & "\OneDrive\Documents\Brightree\" & sUserInput & "\Financial Scorecard\Exceptions.xlsm"
Dim currentWb As Workbook
Set currentWb = ThisWorkbook
Dim exceptionWb As Workbook
Set exceptionWb = Workbooks.Open(path)
Dim exceptionWs As Worksheet
Set exceptionWs = exceptionWb.Sheets("Exceptions")
Dim rng_data As Range
Set rng_data = exceptionWs.Range("A1:A20")
rng_data.Copy
currentWb.Sheets("Exception").Range("A1").PasteSpecial xlPasteValues
exceptionWb.Close (False)
End Sub
您是否已逐步完成(F8),以确保所有变量均已正确定义?您的错误表明您引用的是不存在的内容。由于您正确打开了第二个wb并复制了范围,因此这表明问题出在currentWB中,因为exceptionwb.close无法执行。
—
Raystafarian 2015年
我知道,如果我跳过该行,则执行close命令并关闭exceptionWb。我与您同在-我相信它与currentWB变量有关-几乎就像它忘记了已将其设置为ThisWorkbook一样。但是,逐步执行,我可以看到每个变量的值是什么吗?就像我在VBA中所做的一样,我还没有这样做!谢谢!!
—
LeAnn Smith Scott
只需将变量悬停在变量上,它就会告诉您它的值
—
Raystafarian 2015年