VBA 通过粘贴公式从一个工作簿获取值到另一个工作簿

VBA taking value from one workbook to another with having formulas pasted

我希望将特定单元格的值从一个工作簿复制到另一个工作簿。我有下面的代码,但它只有 returns 带有公式的单元格,而不仅仅是值。我知道需要在某处添加一行关于 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

您只需要值?

尝试更改以下行:

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

如果您只需要内部值。