Excel 如果特定单元格具有值,则复制范围

Excel 如果特定单元格具有值,则复制范围,excel,vba,Excel,Vba,我是VBA新手,但很开心。我想做的是,如果单元格E15的值大于0,程序应该复制范围J15:AL15。基本上,它需要对E15:E46范围内的每个单元重复相同的操作。如果E16的值为J15,则应复制AL16,依此类推 下面的代码是我到目前为止的代码。即使E16或E40有一个值,它也只复制范围J15:AL15。我严重遗漏了一些要点 Sub Copy_Click() Dim k As Range Dim j As Range For Each k In Range("E15:E46") Se

我是VBA新手,但很开心。我想做的是,如果单元格E15的值大于0,程序应该复制范围J15:AL15。基本上,它需要对E15:E46范围内的每个单元重复相同的操作。如果E16的值为J15,则应复制AL16,依此类推

下面的代码是我到目前为止的代码。即使E16或E40有一个值,它也只复制范围J15:AL15。我严重遗漏了一些要点

Sub Copy_Click()

Dim k As Range
Dim j As Range

For Each k In Range("E15:E46")
    Set j = Range("J15:AL15")
    If k > 0 Then
      j.Copy
    End If
Next k

End Sub

我觉得变量j有问题,但找不到定义它的方法。

设置j=Range(“J15:AL”&k.row)
-您没有改变
j
,它是固定的。另外,单独复制也不起任何作用。
范围(“J”&k.row&“:AL”&k.row)。复制
-您没有destination@SJR这是天才,谢谢你。它工作得很好。当前它复制所有行。如果中间的单元格为空,您认为有没有办法不复制?例如,E15和E17有一个值,在本例中,程序复制J15:AL17,尽管E16是空的。@DaveExcel感谢您的帮助。在这种情况下,由于目的地正在快速变化,所以不需要目的地。如果您以一种更简单的方式解释您试图实现的目标,可能会有所帮助。您正在重复复制相同的范围,我不明白您所说的“不需要目的地”是什么意思。
Set j=range(“J15:AL”&k.row)
-您没有改变
j
,它是固定的。另外,单独复制也不起任何作用。
范围(“J”&k.row&“:AL”&k.row)。复制
-您没有destination@SJR这是天才,谢谢你。它工作得很好。当前它复制所有行。如果中间的单元格为空,您认为有没有办法不复制?例如,E15和E17有一个值,在本例中,程序复制J15:AL17,尽管E16是空的。@DaveExcel感谢您的帮助。在这种情况下,由于目的地正在快速变化,所以不需要目的地。如果您以一种更简单的方式解释您试图实现的目标,可能会有所帮助。你又在复制同一个范围,我不明白你所说的“一个人不需要目的地”是什么意思。