VBA复制相邻单元格

时间:2015-10-06 13:21:05

标签: vba excel-vba offset excel

我试图编写一个宏,它将使用if语句将数据从一个地方复制到另一个地方。

Esentially:

如果Range.Cells(i,j).Value =" Hello"然后将三个单元格复制到单词" Hello"

的右侧

我想我可能不得不使用Offset?我没有经验丰富,任何帮助将不胜感激!谢谢!

编辑:

这就是我的代码:

For i = 1 To danesRange.Rows.Count
For j = 1 To danesRange.Columns.Count
If danesRange.Cells(i, j).Value = "Ins" Then
    danesRangevalues.Cells(i, j).Copy
End If
    Next j
Next i

我知道如何使用VBA进行复制和粘贴,但我不知道如何复制和粘贴未知范围,因为我不知道这三个单元格的范围究竟在哪里,这取决于价值" INS"下降。到目前为止,我只会复制相邻的单元格,而不是全部三个。

1 个答案:

答案 0 :(得分:1)

实际上,Offset Resize就是您需要的。

所以改变这个:

    If danesRange.Cells(i, j).Value = "Ins" Then
        danesRangevalues.Cells(i, j).Copy
    End If

到此:

If danesRange.Cells(i, j).Value = "Ins" Then danesRange.Cells(i, j).Offset(,1).Resize(1, 3).Copy

因此,您将danesRange.Cells(i,j)偏移一列,然后将范围设为3列。

我同意拉尔夫的评论。设置方式,似乎是在列中复制冗余数据。