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)
您可以通过将源范围的值分配到目标范围来完全跳过复制命令:
'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)
我假设您想从“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)
我实现了一个有效的解决方案。
代码如下:
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)