将值复制到包含不删除公式的公式的工作表

时间:2018-05-30 06:25:19

标签: excel vba excel-vba

我有两个工作表:Sheet1和Sheet2。 Sheet1有原始数据(没有任何公式),Sheet2在某些单元格中有公式。是否可以将Sheet1中的值复制到Sheet2而不从Sheet2中删除公式?

我使用以下代码将值从sheet1复制到sheet2。复制值后,Sheet2中的公式将被删除。

i = 2

With Sheets(1)
   'loop column A 
   For Each Cell In .Range("A2:A" & .Cells(.Rows.Count, "A").End(xlUp).Row)
      .Rows(Cell.Row).Copy Destination:=Sheets(2).Range("A" & i)
      i = i + 1
   Next Cell
End With

1 个答案:

答案 0 :(得分:1)

此代码不会对整行进行复制,而是会循环遍历原始数据中行中的每个单元格,并且只有当您在其他工作表上的同一单元格中没有公式时才会复制该值:

Sub TestForFormula()

Dim X As Long
Dim CL As Range, RNG As Range

For X = 2 To Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    Set RNG = ActiveSheet.Range(Cells(X, 1), Cells(X, ActiveSheet.Cells(X, Columns.Count).End(xlToLeft).Column))
    For Each CL In RNG
        If Sheets(2).Cells(X, CL.Column).HasFormula = False Then
            Sheets(2).Cells(X, CL.Column).Value = Sheets(1).Cells(X, CL.Column).Value
        End If
    Next CL
Next X

End Sub