偏移到其他工作表vba中的最后一行
我正在处理两张工作表,分别是“起始工作表”和“预计费用”第A4列至最后一行,起始工作表中有日期。我正试图将日期填入“B7”中的实际费用表中。我使用的是一个偏移量,因此填充的第一个日期将从A5(起始页)开始。这是我的密码:偏移到其他工作表vba中的最后一行,vba,loops,excel,Vba,Loops,Excel,我正在处理两张工作表,分别是“起始工作表”和“预计费用”第A4列至最后一行,起始工作表中有日期。我正试图将日期填入“B7”中的实际费用表中。我使用的是一个偏移量,因此填充的第一个日期将从A5(起始页)开始。这是我的密码: Sub offset_Dates() Dim RCount As Integer Dim n As Integer Sheets("start page").Activate RCount = Range(Range("A5000").End(xl
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
您需要使用for循环计数增加范围,这样它将使用起始页上的下一个值填充Acurred单元格
For n = 1 To RCount
Sheets("Acurred Expenses").Activate
Range("B" & 6 + n) = Sheets("Start Page").Range("A" & 4 + n)
Next n
这应该可以做到这一点您需要偏移量中的变量:
Range("B7").Offset(n - 1, 0) = Sheets("start page").Range("A4").Offset(n, 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
<>我想让你考虑不要使用<代码>。激活< <代码> >代码>。选择< <代码> >方法,除非你真的必须(几乎从来没有)。活动组件可能非常不可靠,在大型项目中使用它们可能会影响代码性能。正确的方法是使用变量来存储指向
工作表的指针
,并添加工作簿
变量以提高安全性
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