0
我有这张工作表Consulta
其中每当我改变列K上的值,它将范围E:K的颜色更改为绿色或白色,如果它是空的。vba复制到不同的范围
我也想要如果该行是绿色的,将该行复制到名为E-mail
的工作表。这是我到目前为止已经试过和它的作品:
Sub ChangeColor()
Dim ws As Worksheet, ws1 As Worksheet, i As Long, lastrow As Long
Set ws = Sheets("Consulta")
Set ws1 = Sheets("E-mail")
lastrow = ws.Cells(Rows.Count, "E").End(xlUp).Row
For i = 5 To lastrow
If ws.Range("K" & i) <> "" Then
ws.Range("E" & i & ":K" & i).Interior.ColorIndex = 43
ws.Range("E" & i & ":K" & i).Copy ws1.Range("A" & i & ":G" & i)
Else
ws.Range("E" & i & ":K" & i).Interior.ColorIndex = 2
End If
Next
If ws.Range("E" & i & ":K" & i).Interior.ColorIndex = 2 Then
ws1.Range("A" & i & ":G" & i).Clear
End If
End Sub
我的问题是下面这行:
ws.Range("E" & i & ":K" & i).Copy ws1.Range("A" & i & ":G" & i)
其实我是想在复制到不同的范围,而不是相应的范围表格E-mail
(例如,如果第一个匹配是E3:K3我想复制到A2:K2,如果第二个匹配是E34:K34我想将它复制到A3:K3,所以它会继续)。
我试过使用另一个循环,但我的Excel变得疯狂,所以我认为我做错了。
任何建议,将不胜感激。
就是这样!非常感谢,我完全忘记了'Offset'。你对颜色是正确的。 – paulinhax
我意识到这只是当我的颜色与我'清除'搞砸了,但我会尽力解决这个问题。 – paulinhax