我有两个工作表: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
答案 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