克隆列,但公式也需要转移 - 使用VBA

时间:2016-05-31 10:32:51

标签: excel vba excel-vba

我有一个单元格(A1),它包含一个数字,即。 A1 = 4.这意味着,我必须从工作表中克隆4次列。

这很容易,但诀窍是,克隆的列单元格也可能包含公式,应该按克隆的数量移动。为了更好地理解这里是一个例子:

如果列包含= A1,则第一个克隆应包含= B1,第二个克隆应包含C1,依此类推。

复制脚本,无需转移:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then 
    For i = 0 To Target
        ActiveWorkbook.Sheets("Sheet1").Columns(3).Copy Destination:=Sheets("Sheet1").Columns(i) 'Columns(3) is the column that I am cloning
    Next i
End If

End Sub

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您有一个公式(例如= A1),那么该列会自动移动,如果您想要一个不同的行为,请在列或行前面使用$:

如果你写= $ A1,那么该列将始终保持不变,但行可以更改 如果您写= A $ 1,该列将更改但行将保持不变 如果你写= $ A $ 1,那么列和行都将保持不变

这是我的例子:在A1中我使用公式= A2。我在A2中输入了5,所以A1也显示了5。现在我运行了这段代码:

{{1}}

现在B1具有公式= B2,C1具有= C2并且D1具有= D2

如果您不想更改公式,请在A1

中输入= $ A $ 2

希望这会有所帮助