我可以设置一个表格中的单元格作为选定的一个,而不激活表单?
在我正在创build的工作簿中,我创build了一个循环遍历几个工作表的过程,清除了一些范围++,准备工作簿一年。 但是,我想在工作表中设置给定的单元格,例如F5
作为活动单元格,然后再移动到下一个工作表,因为这是用户在移动到工作表时最有可能开始input数据的地方。
但是,试图将.Select
和.Activate
放到下面的代码的第5行失败与Select / Activate method of Range class failed
。
For Each ws In ThisWorkbook.Worksheets If InStr(1, ws.CodeName, "Veke_", vbTextCompare) > 0 And Len(ws.CodeName) = 7 Then Call lås_opp_ark(ws) Call oppdater_ark_for_nytt_år(ws, førsteSkiftIVeka(dato)) ws.Range("F5").Select Call lås_ark(ws) End If Next ws
试图找出为什么这不起作用,我最终遇到了这个微软的文档页面,其中指出:
在成功使用Selection属性之前,必须激活工作簿,激活或select工作表,然后使用Select方法select范围(或其他对象)。
我认为使用Select
除了活动工作表之外的任何东西都是行不通的。 该页面没有明确说明有关Activate
任何信息,但我认为我得到的错误原因是一样的。
现在,我的问题是这样的 – 有没有办法将活动单元格设置为非活动工作表而不先激活它? 如果没有,将激活工作簿中的每个工作表设置活动单元是非常资源密集型? 我想我可以自己检查后者,但是任何input都会很有趣。
不需要select
单元格,而是激活它。 尝试这个:
更换:
ws.Range("F5").Select
有了这个:
Application.Goto ws.Cells(1), 1 'This activates ws and scrolls to place cell `A1` at the top of the window Application.Goto ws.Range("F5") 'This selects Cell `F5`
请参阅Application.Goto方法(Excel)