VBA Excel宏使用多个工作表创建一个小型数据库表(新的宏,并有兴趣学习)

时间:2016-08-26 08:05:33

标签: excel vba excel-vba macros

我已经开始使用宏几周了,我正在努力解决一个问题。

我正在尝试创建一个数据输入掩码作为项目的一部分,我的目标是按顺序将表单中的数据存储在表1到表9中,我设法实现这一点并清除初始掩码所以可以输入新数据。

我设法实现上述功能的代码是:

Sub Macro1

将数据从表1转移到表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

保持Table9不受Live Edit Table1

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

清除表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

End Sub

我面临的问题是每次使用命令按钮运行宏时,表9中的数据都会被替换。 有很多互联网搜索,我试着按如下方式编辑代码:

Sub Trail

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 

End Sub

这是一个棘手的部分,作为一个新手,我无法弄清楚, 如果有人可以指导我完成这件事,我将非常感激。

  
      
  1. 如何使用参考单元格而不是单元格的绝对地址将数据粘贴到新表中。 (例如,我想按顺序将表1中的数据粘贴到表9中,以便从每次宏代码运行中精确保存28个数据单元,这样当我第二次运行宏时,数据将从单元格中保存29至56)
  2.   
  3. 是否可以复制并粘贴表1中的一个字段并将其粘贴到表9中的28个连续单元格中(表1中的A1复制到表9中的所有A1-A28中),如果有的话,请使用方法
  4.   

感谢任何建议。 DankeSchön!

1 个答案:

答案 0 :(得分: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