如何从范围中仅复制excel vba中的值?

pab*_*vix 1 excel vba copy range

我正在尝试使用vba宏在Excel中将值从表复制到Range,但我不想要表格格式,只需要它的值.我怎样才能做到这一点?

以下是代码的一部分:

    '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
Run Code Online (Sandbox Code Playgroud)

小智 5

我相信您正在寻找粘贴值的功能。你可以记录下来,或者使用我下面所做的。(从录制中选择就在那里,这会使其运行速度变慢,但您没有循环,因此只是添加了恒定的时间)。

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


MP2*_*P24 5

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

'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
Run Code Online (Sandbox Code Playgroud)


pbo*_*bou 5

我假设您想从“Sheet1”复制到“Sheet1” - 当然您可以将其作为参数并循环遍历所有工作表

Dim rSource as range 'Source Range
Dim rDest as range   'Target Range - It should be the same dimension
Dim wbSource as workbook 'Source Workbook
Dim wbTarget as workbook 'Target Workbook
Dim myRange as string

myRange = "A:G" ' It is an example, you can make it dynamic

'add new workbook
    Workbooks.Add
    Set wbTarget = ActiveWorkbook

'Set the Source Range
    Set rSource = wbSource.Sheets("Sheet1").Range(myRange)

'Destination Range
    Set rDest = wbTarget.Sheets("Sheet1").Range(myRange)

'Copy values only
    rSource.Copy
    rDest.PasteSpecial xlPasteValues
Run Code Online (Sandbox Code Playgroud)


pab*_*vix 0

我实现了一个有效的解决方案。

代码如下:

    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
Run Code Online (Sandbox Code Playgroud)