我见过有关复制一系列数据并粘贴带有空白的文章,但是我需要更复杂一些。
我有一系列数据需要从一张纸上复制并粘贴到另一张纸上。另一张纸上有我不想覆盖的第4个单元格的数据。因此,我基本上具有很长的数据范围,我需要复制三个单元格并粘贴到我描述的第4个单元格下的另一张纸上,一遍又一遍,直到到达数据范围的尽头。
示例: 工作表1中的数据 Sheet 1 data
需要粘贴到此纸上2 sheet 2 test
所以最终结果有第2页,其中“ test”单元没有被覆盖 sheet 2 with data pasted
谢谢!
编辑
这是我现在正在使用的代码:
'现在,从wb1复制样本结果:
wb1.Sheets(1).Range(“ D53”,wb1.Sheets(1).Range(“ D53”&NumOfwells * 4 + 44))。复制
'Now, paste to y worksheet:
wb2.Sheets("Worksheet").Range("J6").PasteSpecial
如您所见,它是一个要复制的动态范围,其大小可能取决于输入数字(NumOfwells),因此将计算该范围。
您会看到要在工作表中的哪个位置进行复制,即D53,然后从wb1的工作表1开始向下复制。然后粘贴到从J6开始的第二个工作簿中。
答案 0 :(得分:0)
欢迎使用StackOverflow。如果您以后发布问题,请 包括您尝试过的代码,并确定失败的地方。
从您的问题和样本中,您实际上不需要查找第4行 您实际上只是在尝试将数据粘贴到没有任何内容的地方 目标区域。
代码使用相同的基本循环来显示两种情况。通过以下过程,您可以选择范围和目标表。
Sub test2()
Call CopyData(Sheet1.Range("A3:A13"), sheet2)
End Sub
Private Sub CopyData(ByVal SourceRange As Range, ByRef TargetWorksheet As Worksheet)
Dim oIndex As Long
For oIndex = 1 To SourceRange.Rows.Count + 1
' Check for blanks
'If TargetWorksheet.Cells(SourceRange.Row + oIndex - 1, 1) = "" Then
' TargetWorksheet.Cells(SourceRange.Row + oIndex - 1, 1).Value = SourceRange.Cells(oIndex, 1).Value
'End If
' Skip every 4th row
If (oIndex - 1) Mod 4 <> 0 Then
TargetWorksheet.Cells(SourceRange.Row + oIndex - 1, 1).Value = SourceRange.Cells(oIndex, 1).Value
End If
Next
End Sub