VBA通过粘贴公式将值从一个工作簿转移到另一个工作簿

时间:2017-12-17 14:00:42

标签: vba formula

我希望将特定单元格的值从一个工作簿复制到另一个工作簿。我有下面的代码,但它只返回带有公式的单元格而不仅仅是值。我知道需要在pastespecial等地方添加一行,但不知道在哪里。有什么帮助吗?

    Sub PullClosedData()
On Error GoTo Errorcatch
   Dim filePath As String
Dim SourceWb As Workbook

Dim TargetWb As Workbook

Set TargetWb = ActiveWorkbook


Dim emptyRow As Long

emptyRow = Range("A" & Rows.Count).End(xlUp).Offset(1)


filePath = TargetWb.Sheets("results").Range("A1").Value
Set SourceWb = Workbooks.Open(filePath)



SourceWb.Sheets("8").Range("D36:G36").Copy 
Destination:=TargetWb.Sheets("Staff data").Range("a" & 
Rows.Count).End(xlUp).Offset(1)



 SourceWb.Close SaveChanges:=False

   MsgBox "Staff data sheet updated"
  Exit Sub
Errorcatch: MsgBox Err.Description
 End Sub

1 个答案:

答案 0 :(得分:0)

您只需要值吗?

尝试更改以下行:

SourceWb.Sheets("8").Range("D36:G36").Copy Destination:=TargetWb.Sheets("Staff data").Range("a" & Rows.Count).End(xlUp).Offset(1)

要:

SourceWb.Sheets("8").Range("D36:G36").Copy
TargetWb.Sheets("Staff data").Range("a" & Rows.Count).End(xlUp).Offset(1).pastespecial xlPasteValues 'Or xlPasteValuesAndNumberFormats might suit you better.'

您也可以指定:

destinationrange.value2
 = sourcerange.value2

如果您只想要内部值。