2013-10-15 163 views
1

我到处搜索,只是无法让它运行。对于VBA,我相当新(b),所以如果可能的话,我会很乐意提供一些提示或帮助。复制随机单元格和粘贴+随机单元格转发的宏

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

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

我的目标是选择和复制随机细胞并在不同的工作表中随机细胞PasteSpecial的他们。

我能走到今天:

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错误.....

+0

'每个Range对象都是由开始和结束字符位置定义的:http://msdn.microsoft.com/en-us/library/office/aa223066(v=office.11​​).aspx – Chris

+0

如果你已经证实x实际上是一个范围,你不需要'Range(“x”)' – Chris

+0

附近的引号。我试过它也没有带有相同结果的引号。 – user2882635

回答

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

为了选择由用户指定的范围内。如果您使用的类型= 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 
+0

我试过你的解决方案,它的工作范围(x).select或现在x.select线,但现在它返回最后一行中的新错误。 – user2882635

+0

最后一个码是这样的: 集X = Application.InputBox(提示:= “设置单元格复制”,类型:= 8)。 x.Select Selection.Copy 表( “AVGs”)选择 集合Y = Application.InputBox(提示:= “设置电池粘贴”,类型:= 8) y.PasteSpecial粘贴:= xlPasteValues,操作:= xlNone,SkipBlanks:=假,移调:=真 完Sub 很遗憾,它只是不想运行,它在最后一行中调用错误 – user2882635

+0

什么是错误 – Chris

相关问题