我有多个电子表格,我需要在一个特别命名的工作表上复制从“S4”开始的列,并且我只需要该列中包含数据的单元格(从 S4 开始以及它下面的所有内容)。
我需要复制该数据并将其粘贴到我的“主”电子表格中,从特定工作表的 A2 开始。我可以用一个电子表格来做到这一点,但是我遇到的问题我需要 VBA 来找到 A 列中最后一个有值的单元格,然后开始将新数据粘贴到它下面的单元格中,等等......否则,当它查看其他电子表格,它只是覆盖了我的主电子表格中的数据。
您会注意到 S4:S2000 的指定范围 - 它的目的是用于单个电子表格,它工作得很好,因为我从来没有超过 2000 年的数据,但我真的只需要它来查找单元格值并抓取这些值。
这是我遇到麻烦的代码块。我希望它从 A2 开始搜索(跳过列标题),查找最后一个具有值的单元格,然后将值从 S4 开始的单元格粘贴到另一个工作表上。
On Error Resume Next
Set wbkCS = Workbooks.Open(strCutSheetFile(i))
On Error GoTo 0
If Not wbkCS Is Nothing Then
With wbkVer.Sheets("Cutsheets")
.Range(.Cells(2,1)).End(xlUp).Row = wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Value
我不得不稍微调整一下你的,因为我正在处理受保护的文件,但这有效:
Set copyRng1 = Worksheets("Cutsheets").Range("A2")
If copyRng1 = "" Then
wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Locked = False
wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy Destination:=wbkVer.Worksheets("Cutsheets").Range("A2")
Else
wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy Destination:=wbkVer.Worksheets("Cutsheets").Range("A" & wbkVer.Worksheets("Cutsheets").Range("A65536").End(xlUp).Row + 1)
End If