继我之前提出的问题得到了完美解答后,我现在已经为我的问题的其余部分编写了代码,但是我现在已经遇到了问题。
工作表的一部分使用=RAND()
生成随机数。由于这是一个易失性函数,我需要将公式的输出复制到一个新位置。如果我手动这样做,我会做一个副本 - >粘贴特殊值,以便我只是去数字,而不是公式。
在VBA中尝试此操作时,当我尝试选择特殊粘贴的目标范围时,我会在部分代码中收到错误1004 。
以下是代码:
' Copy Random Questions to Static Page for VLOOKUPS
With Worksheets("Quiz Generator")
Range("NEWQUEST").Copy
'Selection.Copy
End With
With Worksheets("Static Question List")
Range("TOPSTAT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
我已经尝试过各种方法,使用
RANGE().Select
Selection.Copy
RANGE().Select
Selection.Pastespecial Paste:=xlValues
还使用:
RANGE().Copy
Range().PasteSpecial Paste:=xlValues
在原始代码中我可以通过
Range("TOPSTAT).Select
在它抛出之前
Run-Time error '1004':
Application-defined or object-defined error
弹出
感谢任何帮助。
所有定义的范围都是正确的,并且在名称管理器中,我已尝试使用单元格参考来查看是否是问题的范围名称。
令人讨厌的是,之前使用的是长手Select / Selection.Paste等方法,但是因为它试图整理它停止的代码。
提前致谢。
答案 0 :(得分:0)
我会做这样的事情,
NEWCREST
转储为数组TOPSTAT
中的第一个单元格并根据需要调整大小(除非您有本地范围名称,否则在处理范围名称时不需要工作表名称)
<强>代码强>
Dim x
x = Range("NEWQUEST").Value2
Range("TOPSTAT").Cells(1).Resize(UBound(x, 1), UBound(x, 2)) = x