我正在尝试运行For Next循环,从特定单元格中提取特定数字,以便使用Excel计算时间卡的总小时数(这是我用它的最佳程序)。我无法弄清楚如何做到这一点,因为我正在使用R1C1,因为我正在运行位置的计数。我并不是对这种特殊处理方法的隐藏,但它的一个变体在Access中起作用(但由于原因,我不能使用Access)。
附件是我正在使用的代码段。
For Weekday = 11 To 17 'Determine the day of the week by Row Reference (R1C1 format)
For DayValue = 29 To 34 'Determin time input (Call, Meal In, Meal Out, Wrap, etc.) for day of the week
WrkTimes(DayValue) = ActiveSheet.Cells.FormulaR1C1 = "R" & (Weekday) & "C" & (DayValue) 'Select the correct time input
Next DayValue 'Process the next time input
TotHrs(Weekday) = WrkTimes(34) - WrkTimes(29) - (WrkTimes(31) - WrkTimes(30)) - (WrkTimes(33) - WrkTimes(32)) 'Calculate total hours for the day
ActiveSheet.Cells(Weekday, 37) = TotHrs(Weekday) 'Display total hours for the day in the proper cell
是的,在这个循环的底部有一个Next命令,我在这个和结尾之间只有其他不相关的代码。我在DayValue行上收到错误
答案 0 :(得分:0)
我的第一个建议是使用
Cells(r, c)
然后你可以输入你的偏移量,如
Cells(r-3, c)
您只需要存储r和c值,这些值已经作为Weekday(r)和DayValue(c)完成。
如果您正在使用循环查看内容:
Cells(Weekday, DayValue).Value
这将给出您引用的单元格中的值。
修改强>
我的评论建议:
Dim i as Long, j as Long, k as Long
For Weekday = 11 To 17
i = Cells(Weekday, 34).Value 'Should allow you to have an output for each row
For DayValue = 33 To 29 Step -1 'Saving column 34 outside of the dayvalue loop
j = i
k = Cells(Weekday, DayValue).Value
i = j - k
Next DayValue
Cells(Weekday, 37).Value = i
Next Weekday
答案 1 :(得分:0)
因此,为了澄清为什么我继续将下标超出范围(在遵循Scott和Phylogenesis的建议之后),事实证明我的工作日(x)设置为7时应该设置为17。 / p>
感谢您的帮助。