用于复制随机单元格和粘贴+转发到随机单元格的宏

时间:2013-10-15 13:08:50

标签: vba range

我到处搜索,无法让它运行。我对VBA很新(b),所以如果有可能我会对一些提示或帮助感到非常满意。

所以我记录的宏是这样的:

Range("C133:C134").Select
Selection.Copy
Sheets("AVGs").Select
Range("C28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True

我的目标是在不同工作表上的随机单元格中选择和复制随机单元格及其特殊情况。

我到目前为止:

Selection.Copy
Sheets("AVGs").Select


Set x = Application.InputBox(prompt:="Click in the column to copy to", Type:=8)
Range("x").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=True

但我得到了错误和调试器在Range("x").Select .....

中显示错误

1 个答案:

答案 0 :(得分:0)

根据InputBoxes上的这个页面......

http://msdn.microsoft.com/en-us/library/office/aa195768(v=office.11).aspx

类型8表示输入框应返回范围对象

8 A cell reference, as a Range object

如果是这种情况,那么你只需要做

x.Select

为了选择用户指示的范围。如果您使用type = 2,那么您将使用Range(x).Select

之后,宏中的最后一行与过程中的那一行相同,所以你应该关闭并运行

编辑,新代码:

Set x = Application.InputBox(prompt:="Set cell to copy", Type:=8) 
x.Select 
Selection.Copy 
Sheets("AVGs").Select 
Set y = Application.InputBox(prompt:="Set cell to paste", Type:=8) 
y.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True