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
如果您只需要内部值。
我希望将特定单元格的值从一个工作簿复制到另一个工作簿。我有下面的代码,但它只有 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
如果您只需要内部值。