Mat*_*dge 0 excel vba excel-vba
我有这个脚本,我已经帮助过,但现在出现了问题.我试图只粘贴值,而不是粘贴在单元格内的公式到另一个单元格.
我认为将.Value放在公式的末尾会告诉脚本只粘贴值...它似乎不是.有人可以给我一个关于如何使这项工作的建议吗?
Option Explicit
Sub ONJL()
Dim lastrow As Long
Dim wsPAR As Worksheet 'PAERTO
Dim wsRD As Worksheet 'Raw Data
Dim wsTEM As Worksheet 'Archive
Set wsPAR = Sheets("PAERTO")
Set wsRD = Sheets("Raw Data")
Set wsTEM = Sheets("Template")
With wsRD
Application.ScreenUpdating = False
lastrow = .Range("J" & .Rows.Count).End(xlUp).Row
wsRD.Range("J" & lastrow + 1).Formula = Date
wsRD.Range("B2").Copy wsRD.Range("K" & lastrow + 1).Value
wsRD.Range("B3").Copy wsRD.Range("L" & lastrow + 1).Value
wsRD.Range("E2").Copy wsRD.Range("M" & lastrow + 1).Value
wsRD.Range("E3").Copy wsRD.Range("N" & lastrow + 1).Value
wsRD.Range("H2").Copy wsRD.Range("O" & lastrow + 1).Value
wsRD.Range("H3").Copy wsRD.Range("P" & lastrow + 1).Value
wsRD.Range("Q1:T1").Copy wsRD.Range("Q" & lastrow + 1)
Application.ScreenUpdating = False
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
您可以"复制"而不实际使用.Copy这样:
Sub CopyWithoutCopying()
Dim wsRD As Worksheet
Dim lastrow As Long
Set wsRD = Sheets("Raw Data")
With wsRD
lastrow = .Range("J" & .Rows.Count).End(xlUp).Row
.Range("K" & lastrow + 1).Value = .Range("B2").Value
.Range("L" & lastrow + 1).Value = .Range("B3").Value
' etc...
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
此方法不使用剪贴板,性能更好,也不选择任何内容.正如Jimmy指出的那样,你不需要With块内的wsRD前缀.
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |