Excel 工作簿中存储在变量中的计算

Excel 工作簿中存储在变量中的计算,excel,vba,Excel,Vba,我正在尝试编写一个宏: 打开另一个工作簿 重新计算那里的某些单元格范围 复制这些范围内公式上的值 最后将结果保存到存档 我想将正在处理的工作簿存储在一个变量中,但我遇到了一些错误,原因不明。我的代码的相关部分是: Dim bbgwb As Workbook Dim filepath As String filepath = ThisWorkbook.Worksheets("Task List").Range("I1").Value & ThisWorkbook.Worksheets

我正在尝试编写一个宏:

  • 打开另一个工作簿
  • 重新计算那里的某些单元格范围
  • 复制这些范围内公式上的值
  • 最后将结果保存到存档
我想将正在处理的工作簿存储在一个变量中,但我遇到了一些错误,原因不明。我的代码的相关部分是:

Dim bbgwb As Workbook
Dim filepath As String

filepath = ThisWorkbook.Worksheets("Task List").Range("I1").Value & ThisWorkbook.Worksheets("Task List").Range("D2").Value

Set bbgwb = Workbooks.Open(filepath)

bbgwb.Worksheets("FUND").Range("B142").Calculate

当我运行代码时,Excel会打开我想要打开的工作簿,但就在这之后,调试器指向我粘贴的最后一行代码时出现“下标超出范围”错误。我打开的工作簿包含一个名为“FUND”的工作表,其中的单元格B142包含一个公式,因此我很确定问题在于变量引用写得不好,但我不知道哪里出了问题,以及如何修复它。

如果您放入类似
bbgwb.Worksheets(“FUND”).Range(“B142”)。是否清除
?如果不是,那么可能是B142中的公式导致了错误。如果是,请尝试bbgwb.Sheets(1).Range(“A1”)并从那里开始。这很有效,并且是一个很好的解决方案,因为我打开的工作簿都只有一个工作表,所以我可以通过编号而不是名称来引用它们。这是代码对存储在变量中的工作簿执行某些操作的一般属性吗?您不能按名称引用其中的工作表?很高兴听到它起作用了。不,好吧,你可以按名字查阅任何工作表。可能是因为某些原因,它不认为名称是“基金”。如果您放置类似于
bbgwb.Worksheets(“基金”).Range(“B142”).Clear的内容,它是否会给出相同的错误?如果不是,那么可能是B142中的公式导致了错误。如果是,请尝试bbgwb.Sheets(1).Range(“A1”)并从那里开始。这很有效,并且是一个很好的解决方案,因为我打开的工作簿都只有一个工作表,所以我可以通过编号而不是名称来引用它们。这是代码对存储在变量中的工作簿执行某些操作的一般属性吗?您不能按名称引用其中的工作表?很高兴听到它起作用了。不,好吧,你可以按名字查阅任何工作表。可能是因为某些原因,它不认为名称是“基金”。如果您放置类似于
bbgwb.Worksheets(“基金”).Range(“B142”).Clear的内容,它是否会给出相同的错误?如果不是,那么可能是B142中的公式导致了错误。如果是,请尝试bbgwb.Sheets(1).Range(“A1”)并从那里开始。这很有效,并且是一个很好的解决方案,因为我打开的工作簿都只有一个工作表,所以我可以通过编号而不是名称来引用它们。这是代码对存储在变量中的工作簿执行某些操作的一般属性吗?您不能按名称引用其中的工作表?很高兴听到它起作用了。不,好吧,你可以按名字查阅任何工作表。也许出于某种原因,它不认为这个名字是“基金”。