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

时间:2016-06-28 11:27:08

标签: excel vba excel-vba

我正忙于在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中为空。有没有办法自动移动所有剩余数据以填充空单元格 感谢名单

2 个答案:

答案 0 :(得分:0)

您是否只想将工作表(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

答案 1 :(得分:0)

请尝试以下方法,而不是剪切和粘贴。

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