我编写了一些代码,使用两个字符串作为范围将数据复制并粘贴到另一张纸上。这些字符串在“ B”中,我需要将“ C”和“ D”列中它们之间的数据粘贴到“ PriorityProgress”上的B2和C2中。我不会对“ B”列中的数据感兴趣。我使用范围的起点。
我编写的代码在单击按钮时起作用,并找到了设置“ B”列中范围的两个字符串,然后将所有数据粘贴在“ B”中的字符串之间,但是不确定如何进行“ C”和“ D”列中的数据粘贴到“ B”和“ C”列中。
Dim r As Range, fr As String 'First Range implementation stage
Dim c As Range, fc As String 'End Range ER's at 25
Dim StartR As Integer
Dim EndR As Integer
fr = "Originating Project ERs at Implementation Stage"
fc = "Originating Project ERs at 25"
Set r = Worksheets("Sheet1").Cells.Find(What:=fr, LookAt:=xlWhole)
Set c = Worksheets("Sheet1").Cells.Find(What:=fc, LookAt:=xlWhole)
If Not r Is Nothing Then
StartR = r.Row + 1
Else
MsgBox fr & " not found"
End If
If Not c Is Nothing Then
EndR = c.Row - 1
Else
MsgBox fc & " not found"
End If
If r.Row And c.Row > 1 Then
Worksheets("Sheet1").Range(r, c).Copy
Worksheets("PriorityProgress").Range("B2").PasteSpecial Paste:=xlPasteFormulas
End If
以下是我希望达到的一些示例数据:
答案 0 :(得分:0)
哦,这很容易。您需要在最后编辑代码。
If r.Row And c.Row > 1 Then
Worksheets("Sheet1").Range(r, c).Copy
Worksheets("PriorityProgress").Range("C2").PasteSpecial Paste:=xlPasteFormulas
Worksheets("PriorityProgress").Range("D2").PasteSpecial Paste:=xlPasteFormulas
End If
请注意,此代码将公式的粘贴在C和D列中。如果您需要在公式的值中粘贴值,则需要使用以下代码。
If r.Row And c.Row > 1 Then
Worksheets("Sheet1").Range(r, c).Copy
Worksheets("PriorityProgress").Range("C2").PasteSpecial Paste:=xlPasteValues
Worksheets("PriorityProgress").Range("D2").PasteSpecial Paste:=xlPasteValues
End If