在Excel中自动执行任务

时间:2013-12-31 21:02:03

标签: excel excel-vba excel-2007 vba

假设我在excel中有这种格式的文件:

A            B              C
1            2              3
4            5              9

其中A,B和C是excel中的标准列标题。 C中的值定义为excel中的sum(A,B)。我想要做的是自动为A和B输入一系列数字,并在新表格中打印C的值。以上只是我想要做的一个例子。 C的公式可以是复杂的函数(即sum(A + B)* 0.1 /(1000))。任何想法如何自动化?

1 个答案:

答案 0 :(得分:1)

以下VBA代码会执行您要求的操作(它会使用值替换公式 - 如果您不希望这样,则使用Paste代替PasteSpecial)。

Sub copyAtoB()
  Dim sh1 As Worksheet
  Dim sh2 As Worksheet
  Dim r1 As Range

  Application.ScreenUpdating = False          ' stops screen flickering during update

  Set sh1 = ActiveWorkbook.Sheets("Sheet1")   ' your source sheet
  Set sh2 = ActiveWorkbook.Sheets("Sheet2")   ' your destination sheet
  Set r1 = Range(sh1.[a1], sh1.[c1].End(xlDown)) ' select from A1 to last contiguous cell in C
  sh1.Activate                                ' make sure source sheet is active
  r1.Copy                                     ' copy the range defined above
  sh2.Activate                                ' make the destination sheet active
  sh2.[a1].PasteSpecial Paste:=xlValues       ' copy just the values (no equation)

  Application.ScreenUpdating = False          ' turn screen updating on again

End Sub

如何根据您的需求进行调整应该是显而易见的 - 如果不是,请使用注释来要求澄清。

相关问题