我在同一工作簿中有多个工作表,并且我试图从工作表1、2等复制某些单元格,然后粘贴到工作表“声明”中的G列中。
表1、2和&x具有相同的格式。
复制时,我想从第一个空白单元格粘贴到工作表1/2 / x的总记录数。
问题是
第1、2和x页是受保护的工作表,我是从其他地方导入的,我真的不想写
Sub AddClaimRef()
Dim nrow As Long
Dim Lastrow As Long
'Add Claim Reference
For x = 1 To Sheets.Count
If Worksheets(x).Range("A2").Value = "STORE NAME:" Then
Worksheets(x).Select
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Cells(1, 9).Copy
Worksheets("Claim").Select
nrow = ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row
Range(Cells(nrow + 1, 7), Cells(Lastrow - 9, 7)).Select
ActiveSheet.Paste
End If
Next
End Sub
预期结果-
Mid(Cell(1,9),5,11)从工作表1-x复制,但我不知道该怎么做,我只能复制cell(1,9)
如果工作表1具有100个具有单元格值的记录 “ SHEET1”,工作表2包含200条记录,单元格值为“ SHEET2” 我希望G列从第2行到第101行填充值“ SHEET1”, 从第102行的“ SHEET2”填充到302
但是实际输出是第2行到第101行被值“ SHEET2”覆盖
答案 0 :(得分:0)
.Select
和NO .Activate
和NO .ActiveSheet
x
)并限定所有范围[What Sheet?].Cells(.....
Range("I9")
复制Last Row + 1
上的Column G
上,并将重复由ws.Column A
确定的值Option Explicit
Sub Update()
Dim Claim As Worksheet: Set Claim = ThisWorkbook.Sheets("Claim")
Dim ws As Worksheet, LRp As Long, LRc As Long
For Each ws In Worksheets
If ws.Name <> Claim.Name Then
If ws.Range("A2") = "STORE NAME:" Then
LRc = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
LRp = Claim.Range("G" & Claim.Rows.Count).End(xlUp).Offset(1).Row
Claim.Range(Claim.Cells(LRp, 7), Claim.Cells(LRp + LRc - 1, 7)).Value = Mid(ws.Range("I9"), 5, 11)
End If
End If
Next ws
End Sub