【发布时间】:2017-10-04 15:49:34
【问题描述】:
我正在使用从another post 编辑的以下代码来列出开始日期和结束日期之间的所有日期。该列表是在与包含开始日期和结束日期的单元格不同的工作表上创建的。如果我打开了 sheet6,则代码有效,但如果我在 sheet1 上则无效。我收到“运行时错误 9:下标超出范围”。调试突出显示对 sheet6 的引用。无论活动工作表如何,我如何修改此代码以使其正常工作?
Sub GenerateDates()
Dim FirstDate As Date
Dim LastDate As Date
Dim NextDate As Date
FirstDate = Sheet1.Range("CZ").Value
LastDate = Sheet1.Range("DA").Value
NextDate = FirstDate
Worksheets("sheet6").Range("A1").Select
Do Until NextDate > LastDate
ActiveCell.Value = NextDate
ActiveCell.Offset(1, 0).Select
NextDate = NextDate + 1
Loop
End Sub
【问题讨论】:
-
不应该" Worksheets("sheet6").Range("A1").Select" 给你一些提示该怎么做?
-
您不应该使用 Select,因为它效率低且通常没有必要。如果你要这样做,这里的问题是你必须先激活工作表,然后选择单元格 - 你不能选择一个不活动的工作表上的单元格。
-
哦,好的,这很有帮助。我会调查的。感谢你的回复。 @SJR
-
我的荣幸。顺便说一句,我假设 CZ 和 DA 是命名范围?可能与列字母混淆,因此您可能需要考虑重命名。
-
这是个好建议。我对这张表 (800+) 的单元格引用非常深入,但我会在以后的项目中记住这一点。 @SJR