2016-01-20 176 views
0

我只是VBA编码的新手,所以我没有太多的线索我不幸的是我在做什么。我希望能在这里得到一只手。Excel VBA复制粘贴移动

我想要做的是。

第一步:复制一行(其中有公式)并将其粘贴在同一位置,但只作为值。
第二步:将选中的单元格向下移动一行。
第三步:复制一行(带公式),并在另一行上用公式在另一行上复制它。

这是在同一张纸上完成的。

如果我能得到一些帮助,这个或某些方向的教程,将非常感激。

+3

打开宏记录器(通常是左下角),执行所描述的步骤。然后你可以看看这个宏,用F8来浏览它,看看它如何影响你的工作表。然后,我建议阅读[删除'.Select'](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)。这应该会让你感觉很好。如果您在此之后需要帮助,请发布代码以及您尝试的其他任何内容。你有什么搜索,什么?你应该在VBA复制/粘贴上找到无数的资源。 – BruceWayne

回答

2

通常情况下,如果没有你的努力,我不会这样做,但为什么不呢?下面的内容和我所能得到的一样简单。请仍然使用宏记录器来看看这一切是如何工作的。这是我们很多人开始的方式。

Sub StepOne() 
Dim myRow As Long 
myRow = 1 ' We will "copy/paste" on Row 1 
' To avoid using the clipboard, you can simply set two ranges' values equal. This will 
' clear out any formulas and leave the values. 
Rows(myRow).Value = Rows(myRow).Value 
End Sub 

而第二个:

Sub StepTwo() 
Dim rng As Range 
'Change this as required. Note the use of `Set` with a `Range` type. 
Set rng = Range("A1:A10") 
rng.Cut rng.Offset(1, 0) 
End Sub 

,最后一个:

​​

编辑:嗯,我知道现在第三步是不是设置两个范围等于一个涉及多一点因为你想维护公式。不过,我会将此作为您进行调查的学习机会。如果你不知道,让我知道,我可以指导你。 :D

+1

非常感谢你@BruceWayne!这正是我正在寻找的。我结束了你的代码去然后一步三我用 '子StepThree() 范围(“A1:AC1”)。复制范围(“A4:AC4”)' 再次感谢你的帮助,这是更比慷慨:) –