我希望将特定单元格的值从一个工作簿复制到另一个工作簿。我有下面的代码,但它只返回带有公式的单元格而不仅仅是值。我知道需要在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
答案 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
如果您只想要内部值。