我正在使用两个工作表“开始工作表”和“已支付的费用” A4列到lastrow的日期在开始工作表中。我试图将日期填入Acurred支出表,来自“B7”。我正在使用偏移,因此填充的第一个日期将来自A5(起始页)。这是我的代码:
Sub offset_Dates()
Dim RCount As Integer Dim n As Integer
Sheets("start page").Activate
RCount = Range(Range("A5000").End(xlUp), Range("A4")).Rows.Count
For n = 1 To RCount
Sheets("Acurred Expenses").Activate
Range("B7") = Sheets("start page").Range("A4").Offset(1, 0)
Next n
End Sub
答案 0 :(得分:1)
您需要使用for循环计数增加范围,因此它将使用Start Page上的下一个填充Acurred单元格。
For n = 1 To RCount
Sheets("Acurred Expenses").Activate
Range("B" & 6 + n) = Sheets("Start Page").Range("A" & 4 + n)
Next n
这应该可以解决问题
答案 1 :(得分:1)
你需要偏移变量:
Range("B7").Offset(n - 1, 0) = Sheets("start page").Range("A4").Offset(n, 0)
答案 2 :(得分:0)
也是我方的另一个变种
Sub offset_Dates()
Dim RCount%, cl As Range
RCount = Sheets("start page").Cells(Rows.Count, "A").End(xlUp).Row
For Each cl In Sheets("start page").Range("A4:A" & RCount)
Sheets("Acurred Expenses").Cells(cl.Row + 3, "B").Value = CDate(cl.Value)
Next cl
End Sub
答案 3 :(得分:0)
我希望您考虑不使用.Activate
或.Select
方法,除非您真的必须(几乎从不)。活动组件可能非常不可靠,在使用它们的大型项目中可能会损害代码性能。正确的方法是使用变量来存储指向Worksheets
的指针,添加Workbook
变量以确保额外的安全。
Sub offset_Dates()
Dim RCount As Integer
Dim n As Integer
Dim wb As Workbook
Dim wsStart As Worksheet
Dim wsExpenses As Worksheet
Set wb = ActiveWorkbook
Set wsStart = wb.Worksheets("start page")
Set wsExpenses = wb.Worksheets("Acurred Expenses")
RCount = Range(wsStart.Range("A5000").End(xlUp), wsStart.Range("A4")).Rows.Count
For n = 1 To RCount
wsExpenses.Range("B7").Offset(n - 1, 0) = wsStart.Range("A4").Offset(n, 0)
Next n
End Sub