【发布时间】:2013-12-03 21:25:50
【问题描述】:
我有一个电子表格,其中包含一周中的一列数据,并使用宏来执行 VBA。 A 列是星期几,B 列是对象的名称。当我运行宏时,它会通过一个命名列表运行一个 For 循环,并将在另一个工作表上的日历中填充项目。只要我有固定长度的命名列表(即 $L2:$A14),宏就可以正常工作,所以如果我添加新数据,我需要修复命名列表。
Sub UpdateCalendar()
i = 2
Dim strRngName As String
lngLast = Sheets("Servers").Range("B" & Rows.Count).End(xlUp).Row
For Each c In Application.Range("ScheduledDates")
strRngName = c.Text
strUser = c.Offset(0, -1).Value
User = c.Offset(0, -10).Value
If (i > 45) Then
<code stuff>
i = i + 1
Next
End Sub
我尝试将第 5 行换成这样的:
For Each c In Sheets("Servers").Range("L" & Rows.Count).End(x1Up).Row
但它不喜欢那样(我猜它不认为它是一个完整的数组?)。执行方式的问题是,如果“ScheduledDates”字段为空,它将引发错误并停止脚本,因此我在命名列表中使用了固定长度。不知道有没有办法解决这个问题。
【问题讨论】:
-
For Each c In Sheets("Servers").Range("L" & Rows.Count).End(x1Up).Row你有一个错字x1Up而不是xlUp