如何从一个范围内只复制excel vba中的值?

我试图将表中的值复制到一个范围,在Excel中使用VBAmacros,但我不希望表格格式,只有它的值。 我怎样才能做到这一点?

这是代码的一部分:

'Source range Set r = Sheets("Sheet1").Range("Table1") 'Destination range Set dest = Range(.Cells(linhaAtual, 1), .Cells(linhaAtual + r.Rows.Count - 1, 5)) r.Copy Destination:= dest 

您可以通过将源范围的值分配到目标范围来完全跳过复制命令:

 'Source range Set r = Sheets("Sheet1").Range("Table1") 'Destination range Set dest = Range(.Cells(linhaAtual, 1), .Cells(linhaAtual + r.Rows.Count - 1, 5)) dest.Value = r.Value 

我相信你正在寻找粘贴值的function。 你可以logging下来,或者使用我在下面做的。 (从录音select在那里,这将使其运行速度较慢,但​​你没有循环,所以它只是不断增加的时间)。

 Selection.Copy 'Select your destination like range("destination").select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

您需要使用pastespecial命令,如下所示。

 'Source range Set r = Sheets("Sheet1").Range("Table1") 'Destination range Set dest = Range(.Cells(linhaAtual, 1), .Cells(linhaAtual + r.Rows.Count - 1, 5)) r.Copy dest.pastespecial paste:=xlPasteValues 

我实现了一个可行的解决scheme。

代码如下:

  Set r = Sheets("Criteria").Range("CriteriaTable") Set dest = Range(.Cells(linhaAtual, 1), .Cells(linhaAtual + r.Rows.Count - 1, 5)) Sheets("Criteria").Activate r.Select Selection.Copy Sheets("Load").Activate dest.Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
 r.Copy dest.pastespecial xlPastevalues