移动/删除单元格中的数据而不移动/删除公式

问题描述:

我忙于在Excel 2010中创建生产计划。我使用公式给出了每个作业的截止日期以及完成作业时的复选框。当复选框被选中时,我使用下面的VB将信息移动到工作表2。移动/删除单元格中的数据而不移动/删除公式

Sub MoveData() 
    If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then 
    Range("A2:B2:C2:D2:E2:F2:G2:H2:I2:J2:K2:L2:M2").Select 
    Selection.Cut 
    Sheets("Sheet2").Select 
    Range("A1").Select 
    ActiveSheet.Paste 
    Range("A1").Select 
    End If 
End Sub 

我现在的问题是,它与在所述细胞中的细节移动式从片1片2我需要式锁定在片材1和影响插入到细胞中的新信息。 当行移动到表2的数据列在表1空时,有没有办法自动将所有剩余的数据,以填补空单元格 感谢名单

+0

你想公式复制在Sheet2中使用?如表1中所示,“= A2 + B2”,当您复制该单元格时,我认为它将更新为'= Sheet1!A2 + Sheet1!B2',但您希望它在Sheet 2中保持为'= A2 + B2' ? –

+0

不,我不需要表2中的公式。表2只是完成工作的记录。工作表1将每周更新一次,所以我需要将公式留在单元格中,以便当我的老板发布新的工作和日期时,公式会影响新的日期。 – estaq

你只是想复制的价值从工作表(1)到表格(“Sheet2”)?

Sub MoveData() 
    Dim r As Range 

    If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then 
     Set r = Worksheets(1).Range("A2:B2:C2:D2:E2:F2:G2:H2:I2:J2:K2:L2:M2") 
     Sheets("Sheet2").Range("A1").Resize(1, r.Count) = r.Value 
     'r.ClearContents 
    End If 

End Sub 
+0

是的,我希望单元格中的信息(作业名称,运费日期)被移动到工作表2,但仍然有工作表1中的公式 – estaq

+0

上面的代码将Sheet1中的值复制到Sheet2,并保留Sheet1上的公式。这似乎不是很有用。您是否想将Sheet1的值附加到Sheet2上的列表的末尾? – 2016-06-29 09:33:02

而不是剪切和粘贴尝试以下操作。

Sub MoveData() 
    If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then 
    Sheets("Sheet2").Range("A1:M1").Formula = Sheets("Sheet1").Range("A2:M2").Formula 
    Range("A1").Select 
    End If 
End Sub 

编辑: 如果你切删除工作表Sheet1从刚刚使用原件,

Sheets("Sheet1").Range("A2:M2").Clear 
+0

谢谢,我会试试看。 – estaq