在电子表格“回顾”(Review)E栏中的不同地方,我都有以“可持续性:”(例如,可持续性: a,可持续性:B)开头的变量。每次都会找到一个。我希望它能复制同一行中的单元格,但向右复制两列。然后,我希望它粘贴到一个不同的表格(SPSE )中,从B63开始。每次粘贴,目标都需要被1行抵消,这样它就可以向下粘贴,直到找到“可持续性:”。下面的代码是一个开始,但我被卡住了。
我需要它做的第二件事(我甚至不知道从哪里开始)是迭代,直到它找到一个“只用于转换”的行为止。这导致了一个新的部分,其中也包括“可持续性:”,但我不希望它从那里复制。
谢谢!
Sub SubmitData()
Dim RngA As Range
Dim FirstAd As String
Dim DestAd As Range
With Sheets("Review").Range("E:E")
Set RngA = .Find(What:="Sustainability:", lookat:=xlPart)
Set DestAd = Range("B63")
If Not RngA Is Nothing Then
FirstAd = RngA.Address
Do
Range(Cell, Cell.Offset(0, 2)).Copy _
Destination:=Sheets("SPSE Tran").Range(DestAd)
Set RngA = .FindNext(RngA)
Set DestAd = DestAd.Offset(0, 1)
Loop While Not RngA Is Nothing And RngA.Address <> FirstAd
End If
End With
End Sub
发布于 2014-07-16 00:04:24
下面对您的代码进行了修改,使其使用筛选器而不是find循环,然后得到所有结果并立即将其复制到目的地:
Sub SubmitData()
Dim ws As Worksheet
Dim rngDest As Range
Dim rngStop As Range
With Sheets("SPSE Tran")
Set rngDest = .Cells(Rows.Count, "B").End(xlUp)
If rngDest.Row < 63 Then Set rngDest = .Range("B63")
End With
Set ws = Sheets("Review")
Set rngStop = ws.Columns("A").Find("ONLY FOR TRANSITIONS", , xlValues, xlPart)
With ws.Range("E1:E" & rngStop.Row)
.AutoFilter 1, "Sustainability:*"
.Offset(1, 2).Copy rngDest
.AutoFilter
End With
End Sub
发布于 2014-07-15 23:13:20
不如(未经测试的):
RngB = where you find "ONLY FOR TRANSITIONS"
RngBRow = RngB.Row
然后将Loop While ..
更改为
Loop While Not RngA Is Nothing And RngA.Address <> FirstAd And RngA.Row < RngBRow
https://stackoverflow.com/questions/24769001
复制相似问题