提问人:Mamed Aliyev 提问时间:10/19/2023 最后编辑:Mark RotteveelMamed Aliyev 更新时间:10/20/2023 访问量:69
使用 if 语句从其他工作表复制范围的循环
Loop for copying range from other sheet with if statement
问:
我是VBA的新手,不知道如何修改此代码,以从其他工作表中获取范围值。
Sub dav()
For i = 1 To 10
If Sheets("yan").Range("A" & i).Value = Sheets("fev").Range("A" & i).Value Then
Sheets("yan").Range("B" & i:"O" & i).Value = Sheets("fev").Range("C" & i:"P" & i).Value
End If
Next i
End Sub
我不知道如何更正这部分.Range("B" & i:"O" & i)
答:
2赞
CDP1802
10/19/2023
#1
您需要将 yan 中的值与 fev 中的 A 列匹配,以找到要复制的正确行。
Option Explicit
Sub dav()
Dim r As Long, s As String, lastrow As Long
Dim wsFev As Worksheet, v, n As Long
Set wsFev = Sheets("fev")
With Sheets("yan")
lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For r = 1 To lastrow
s = .Range("A" & r)
v = Application.Match(s, wsFev.Range("A:A"), 0)
If Not IsError(v) Then
'copy columns B:O
wsFev.Range("B" & v).Resize(, 14).Copy .Range("B" & r)
n = n + 1
End If
Next
End With
MsgBox n & " rows copied from Sheet fev", vbInformation
End Sub
评论
Range("B" & i & ":O" & i)