VBA – 仅复制值
继上一个问题之后,我完全回答了这个问题,现在我已经为我的问题的其余部分写了代码,但是现在我已经出现了问题。
部分工作表使用=RAND()
生成一个随机数。 由于这是一个易失性函数,我需要将公式的输出复制到一个新的位置。 如果我这样做手动,我会做一个副本 – >粘贴特殊值,所以我只是去的数字,而不是公式。
在VBA中尝试这样做时,我会在代码的部分代码中尝试select粘贴特殊的目标范围时收到错误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
popup
任何帮助将受到感谢。
所有定义的范围都是正确的,在名称pipe理器中,我已经尝试使用单元格引用来查看是否是范围名称是问题。
恼人的是,这工作以前使用长期select/ Selection.Paste等方法,但由于试图整理代码停止。
提前致谢。
我会做这样的事情
- 将
NEWCREST
作为值转换为数组 - 将数组转储到
TOPSTAT
的第一个单元格,并根据需要resize
(除非使用本地范围名称,否则在使用范围名称时不需要图纸名称)
码
Dim x x = Range("NEWQUEST").Value2 Range("TOPSTAT").Cells(1).Resize(UBound(x, 1), UBound(x, 2)) = x