帮我自动执行excel中的过程

2 excel vba loops excel-vba

我有一个excel表,其中包含A,B和C列中的值,如下所示:

      A      B      C
1    8.22   1.99902 32.48974
2    8.22   3.04698 33.92426
3    8.22   2.26374 33.1547
4    8.22   2.78227 33.2593
6    8.22   2.46798 33.34269
6    8.22   2.57802 33.67131
7    8.22   2.46798 32.7427
8    8.22   2.57802 33.07131
Run Code Online (Sandbox Code Playgroud)

还有一个单元格(例如F1),其中包含的值只能是1,2或3.

我想创建一个commandbutton执行以下任务:对于每一对线(其中cosnist一组)插入其下方2条新的线路,并与值填充他们像这样(假设我们正在处理的组居住在行9和10)

If F1 = 1 THEN
A11 = A10   B11 = B10   C11 = C9
A12 = A10   B12 = B9    C12 = C10

If F1 = 2 THEN
A11 = A10   B11 = B10   C11 = C9
A12 = A9   B12 = B10    C12 = C10

If F1 = 3 THEN
A11 = A10   B11 = B9   C11 = C10
A12 = A9   B12 = B10    C12 = C10
Run Code Online (Sandbox Code Playgroud)

最后将新插入的线条的背景颜色设置为黄色.

你能帮我完成这个任务吗?

PS一旦按下这样的按钮,你会推荐什么Undo功能?

Ben*_*ack 5

一些东西:

  • 您应该尝试创建宏,然后查看它们生成的代码类型.这将帮助您查看操作Excel工作表所需的VBA代码.
  • 创建几个宏后,学习如何进行循环,以便您可以为所需的所有单元格多次运行该过程.
  • 您无法撤消宏的结果.您可能会尝试编写一个单独的函数来撤消上一个函数的结果,但听起来像是一大堆工作.我建议您创建一份工作表的副本,并在开发阶段使用新工作表.

这应该让你开始.SO上有很多人可以为你解决这个问题,但也许这可能是一个很好的问题,一次只能进入一点点; 然后在库存特定细节时提出问题.

例如,如果您看到宏生成的代码看起来像ActiveSheet.Range("C2").Select,您可能会问,"我看到如何选择单个单元格.如何选择整个行?" 这将为您提供更有针对性的答案,帮助您解决问题.