Excel VBA需求:按条件重复复制单元格数据至指定工作表
修改后的VBA代码(添加M列判断逻辑)
以下是添加了M列值判断的完整代码,仅当「Weekly plan」工作表对应行的M列值为"new"时,才执行复制粘贴操作:
Sub copy() '----variables Dim lrow_d As Long Dim lrow_s As Long Dim i As Long ' 补充声明循环变量 '-----Sheets Dim week As Worksheet Dim trip As Worksheet '-----Define Sheet names Set week = Worksheets("Weekly plan") Set trip = Worksheets("Trip tracking") '--LastRow lrow_s = week.Cells(Rows.Count, 4).End(xlUp).Row For i = 2 To lrow_s ' 新增判断:仅当M列值为"new"时执行后续操作 If week.Range("M" & i).Value = "new" Then lrow_d = trip.Cells(Rows.Count, 3).End(xlUp).Row week.Range("D" & i).Copy Destination:=trip.Range("C" & lrow_d + 1 & ":" & "C" & lrow_d + week.Range("B" & i).Value) End If Next i End Sub
关键修改说明
- 补充声明了循环变量
i,避免未声明变量的隐式类型问题 - 在循环内部增加了条件判断语句:
If week.Range("M" & i).Value = "new" Then ... End If,将原有的复制粘贴逻辑包裹在判断内部,确保仅符合条件的行才会执行复制操作 - 保留了原有的复制逻辑:将D列单元格内容,按照B列指定的重复次数,粘贴到「Trip tracking」工作表C列的现有数据末尾
内容的提问来源于stack exchange,提问作者Hossam Ali
相关产品推荐
相关产品推荐

