我偶然发现了一个错误,我似乎无法在互联网上潜伏数小时后解决类似的错误,我已经找到了十几个错误,但他们并没有错过#39 ; t似乎适合这种情况。
设置非常简单。我有:
然而,当我运行这个简单的代码时,这就变得棘手了。
1. Sub RunMacro()
2. Run "'E:\programs(x86)\Dropbox\work\excel\data.xlsm'!UpdateAll"
3. End Sub
由于错误"下标超出范围(错误9)"是唯一返回的东西,我随后按下#34; Debug"按钮,它导致我错误,据说:
1. Sub UpdateAll()
2. daysBack = Sheets("Update").Range("B1").Value <--- Called out as the error
3. Call getDatabase11DATA
4. Call correctData
5. End Sub
常见问题如下:
我对所有这些问题的回答:
现在这是我的问题:
第二行应该是什么才能从B1单元格中获取单个值?
答案 0 :(得分:4)
活动工作簿中没有Update
表。这样:
Sheets("Update")
隐含地:
ActiveWorkbook.Sheets("Update")
要么1)ActiveWorkbook
不是您期望的书,要么2)工作表名称拼写错误;查看(并删除)前导或尾随空格。
请注意,Sheets
集合还可以包含图表;如果您正在寻找工作表,请使用Worksheets
集合。
答案 1 :(得分:1)
将解决方案从问题转移到答案:
编辑:解决方案 是编辑第二个代码中的第二行到这种格式:
daysBack = Workbooks("name_of_workbook_containing_update_sheet").Sheets("Update").Range("B1").Value
在我的情况下会是:
daysBack = Workbooks("data").Sheets("Update").Range("B1").Value