我知道这已经完成了,但是我遇到了一个问题,我想改变这个脚本的一部分,我只是不知道怎么做。
这是代码,下面是我需要做的。
Option Explicit
Sub PENCMR()
Dim i As Integer
With Application
.ScreenUpdating = False
End With
'Internal NCMR
Dim wsPE As Worksheet
Dim wsNDA As Worksheet
'Copy Ranges
Dim c As Variant
'Paste Ranges
Dim p As Range
'Setting Sheet
Set wsPE = Sheets("Print-Edit NCMR")
Set wsNDA = Sheets("NCMR Data")
Set p = wsPE.Range("A54:U54")
With wsPE
c = Array(.Range("AG3"), .Range("B11"), .Range("B14"), .Range("B17"), .Range("B20"), .Range("B23") _
, .Range("Q11"), .Range("Q14"), .Range("Q17"), .Range("Q20"), .Range("R25"), .Range("V23") _
, .Range("V25"), .Range("V27"), .Range("B32"), .Range("B36"), .Range("B40"), .Range("B44") _
, .Range("D49"), .Range("L49"), .Range("V49"))
End With
For i = LBound(c) To UBound(c)
p(i + 1).Value = c(i).Value
Next
With wsNDA
Dim rFind As Long, NR As Long, LR As Long, LC As Long
LR = .Range("C" & Rows.Count).End(xlUp).Row
LC = .Cells(2, Columns.Count).End(xlToLeft).Column
NR = LR + 1
rFind = wsNDA.Range("A3:A" & LR).Find(wsPE.Range("A54:U54")).Row
.Range("A54", .Cells(2, LC)).Copy
.Range("A" & rFind).PasteSpecial xlPasteValues
.Range("A54", .Cells(1, LC)).ClearContents
End With
With Application
.ScreenUpdating = True
End With
End Sub
该脚本旨在执行此操作:
当代码被激活时,它意味着复制所有单元格,然后将它们粘贴到表单下方的一行中,然后在引用第二页后,将新创建的行的第一个单元格与第二页列表复制并替换信息。
我想看到的是,因为我被告知可以在不粘贴到同一页面上的情况下完成,所以复制数据,在第二张纸上搜索 ID 号,然后用新数据。
这是单子:
现在这样写,它不会替换信息,它只是用空白信息覆盖它。我还没有弄清楚为什么......希望通过这个请求重写,我能够解决这个问题。
再次感谢您的帮助。到目前为止,这个地方在帮助我不仅学习,而且从长远来看可以巧妙地写作方面所做的工作令人惊叹。