我试图编写一个宏,它将使用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"下降。到目前为止,我只会复制相邻的单元格,而不是全部三个。
答案 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列。
我同意拉尔夫的评论。设置方式,似乎是在列中复制冗余数据。