2016-06-28 1 views
-1

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

당신은 시트 2에서 사용하기 위해 수식을 복사 하시겠습니까? 시트 1에서'= A2 + B2'라고 말했듯이, 그 셀을 복사 할 때'= Sheet1! A2 + Sheet1! B2'로 업데이트 하겠지만 시트 2에서 '= A2 + B2'로 유지되기를 원합니다 ? –

+0

아니요. 시트 2의 수식이 필요 없습니다. 시트 2는 수행 된 작업의 레코드 일뿐입니다. 시트 1은 매주 업데이트되므로 셀에 머물 수식이 필요하므로 상사가 새로운 일자리와 날짜를 수식에 적용하면 수식이 새 날짜에 적용됩니다. – estaq

답변

0

그냥 값을 복사 하시겠습니까? 워크 시트 (1)에서 시트 ("시트 2")로 이동 하시겠습니까?

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의 수식을 유지합니다. 이것은별로 유용하지 않습니다. Sheet2의 목록 끝에 Sheet1의 값을 대신 추가 하시겠습니까? –

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 
+0

고맙습니다. 시도해 보겠습니다. – estaq