我的应用程序中有以下代码生成1004错误:
range(cells(1, 103), cells(157, 112)).select
但是,如果我将此代码复制到即时窗口并执行它,我可以看到单元格被选中。
如果我使用Range("CY1", "DH157").Select
应用程序运行正常,没有错误。
这到底是怎么回事?
谢谢!
更新: 我在" scratch":
中创建了一个简单的两个工作表文件,其中包含以下代码Private Sub testcode_Click()
Sheets("scratch").Activate
Range(Cells(5, 5), Cells(10, 10)).Select
Sheets("testtab").Activate
Sheets("testtab").Range("A1:E5").Select
Sheets("testtab").Range("B10:C16").Select
Sheets("testtab").Range(Cells(5, 5), Cells(10, 10)).Select
End Sub
代码将正确执行UNTIL执行最后一个语句。这产生了' 1004'错误,至少在我的系统上
我从2015年发现了一个类似的问题,Rory回答说它现在对我来说正常。显然,单元格调用指的是代码所在的工作表,即使激活了替代工作表。以下工作正常:
表格(" testtab")。范围(ActiveSheet.Cells(5,5),_ ActiveSheet.Cells(10,10))。选择
神秘解决了!谢谢罗里! 谢谢大家。
答案 0 :(得分:1)
这种行为很容易重现 将以下代码放入sheet1的表单模块
Sub Test()
Range(Cells(1, 103), Cells(157, 112)).Select
End Sub
添加第二张纸,将其激活并从sheet1的纸张模块运行子测试。问题是您尝试在sheet1上选择当时未处于活动状态的范围。