2016-08-26 2 views
0

몇 주 후에 매크로를 사용하기 시작했으며 질문에 어려움을 겪고 있습니다.VBA 여러 시트를 사용하여 작은 데이터베이스 시트를 만드는 Excel 매크로

프로젝트의 일부로 데이터 입력 마스크를 만들려고합니다. 목표는 마스크의 데이터를 시트 1에서 시트 9까지 순서 순서대로 저장하는 것입니다.이 작업을 통해 초기 마스크를 지울 수있었습니다. 새로운 데이터를 입력 할 수 있습니다.

서브을 Macro1

전송 데이터 표 1에서 실시간으로 영향을받지 표 9 유지 9

Sheets("Tabelle9").Select 
Range("A2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R1C2" 
Selection.AutoFill Destination:=Range("A2:A28"), Type:=xlFillDefault 
Range("A2:A28").Select 
Range("B2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C2" 
Selection.AutoFill Destination:=Range("B2:B28"), Type:=xlFillDefault 
Range("B2:B28").Select 
Range("C2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C3" 
Selection.AutoFill Destination:=Range("C2:C28"), Type:=xlFillDefault 
Range("C2:C28").Select 
Range("D2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C6" 
Selection.AutoFill Destination:=Range("D2:D28"), Type:=xlFillDefault 
Range("D2:D28").Select 
Range("E2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C9" 
Selection.AutoFill Destination:=Range("E2:E28"), Type:=xlFillDefault 
Range("E2:E28").Select 
Range("F2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R1C3" 
Selection.AutoFill Destination:=Range("F2:F28"), Type:=xlFillDefault 
Range("F2:F28").Select 
Range("G2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C14" 
Selection.AutoFill Destination:=Range("G2:G28"), Type:=xlFillDefault 
Range("G2:G28").Select 
Range("H2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C11" 
Selection.AutoFill Destination:=Range("H2:H28"), Type:=xlFillDefault 
Range("H2:H28").Select 
Range("I2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C5" 
Selection.AutoFill Destination:=Range("I2:I28"), Type:=xlFillDefault 
Range("I2:I28").Select 
Range("J2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C13" 
Selection.AutoFill Destination:=Range("J2:J28"), Type:=xlFillDefault 
Range("J2:J28").Select 
Range("K2").Select  
ActiveCell.FormulaR1C1 = "=Tabelle1!R[2]C12" 
Selection.AutoFill Destination:=Range("K2:K28"), Type:=xlFillDefault 
Range("K2:K28").Select 

표에 :

코드 필자는 상기 기능을 달성하는 데 성공 표 1 편집

Sheets("Tabelle9").Select 
Cells.Select 
Application.CutCopyMode = False 
Selection.Copy 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

515,는

표 1에 모든 필드를 지우려면
Sheets("Tabelle1").Select 
Range("A4:A30").Select 
Selection.ClearContents 
Range("C4:C30").Select 
Selection.ClearContents 
Range("E4:F30").Select 
Selection.ClearContents 
Range("H4:H30").Select 
Selection.ClearContents 
Range("J4:N30").Select 
Selection.ClearContents 

끝 하위 내가 직면

문제는 표 9의 데이터가 내가 명령 단추를 사용하여 매크로를 실행할 때마다 교체되고 있음이다. 다음과 같이 인터넷 검색의 많은 는 내가 코드를 편집하려고 :

하위 트레일을

Sheets("Tabelle1").Select 
Range("B1").Select  
Selection.Copy 
Sheets("Tabelle9").Select 
Range("A2").Select 
Selection.End(xlDown).Select 
Count = ActiveCell.Cells.Row + 1 
Range("A" & Count).Select 
Selection.PasteSpecial Paste:=xlPasteAll, 
Operation:=xlNone,SkipBlanks:= _True, Transpose:=True 

종료 하위

여기에 까다로운 부분이 오는 내가 그것을 알아낼 couldnt는 초보자로 , 누군가가 이것을 안내 할 수 있다면 은 매우 감사 할 것입니다.

  1. 어떻게 기준 셀과 셀이 아닌 절대 어드레스를 사용하여 새로운 테이블의 데이터를 붙여 넣을 수있다. (예 - 표 1의 데이터를 표 9에 붙여 넣으므로 매크로 코드의 각 실행에서 정확한 28 셀의 셀이 저장되므로 두 번째 매크로를 실행하면 셀에서 데이터가 저장됩니다 29 ~ 56)
  2. 표 1의 한 필드를 복사하여 붙여 넣을 수 있으며 표 9의 연속 셀에 붙여 넣을 수 있습니까 (표 1의 A1을 표 9의 A1-A28에 모두 복사하십시오). 그 방법으로 날 화나게해라.

의견을 보내 주셔서 감사합니다. 단케!!

답변

0

이 시도하고 원래 시트 이름을 변경하십시오

Sub Trail() 
    Static Count As Integer 
    Count = Count + 1 
    Sheets("Sheet1").Select 
    Range("B1").Select 
    Selection.Copy 
    Sheets("Sheet2").Select 
    Sheet2.Range("A" & Count & ":A28").Select 
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=True, Transpose:=True 
    Selection.End(xlDown).Select 
    Count = ActiveCell.Cells.Row 
End Sub 
+0

안녕하세요, 감사에게 많은 귀중한 정보를! 나는 당신의 코드를 사용하여 약간의 inorder를 조정하여 프로젝트에 원하는 출력을 얻었습니다. 그냥 정수 백작과 같이 '서브 Macrotrail() 정적 카운트 관심사 경우 넣다 = + 2 시트 ("Tabelle1")를 계산합니다.. 범위 ("B1")를 선택 Selection.Copy 시트를 ("Tabelle9")를 선택 Tabelle9.Range 선택합니다 ("A"를 & & 카운트 "A28")를. Selection.PasteSpecial 붙여 넣기를 선택합니다. = xlPasteAll을, 작업 : = xlNone, SkipBlanks : = 거짓, 트랜스 = 진정한 Selection.End (xlDown) ALL 기타 사항 서보 -OFF 카운트 = ActiveCell.Cells.Row + 26 끝 Sub' – SRI

+1

@Ramadoss는 스프레드 시트이 코드를 사용하여 제안 28 * 15? 내가 variablename을 변경하고 각 행에 맞게 편집 할 수 있습니까? 아니면 더 좋은 방법이 있습니까? – SRI

+0

"for"루프를 사용하십시오 (15 번, 나는 15 -> 15 개의 다른 셀을 믿습니다) –

관련 문제