如果你能提供帮助我真的很感激,因为我真的很想让它发挥作用。我这里有一些代码,用于从电子表格的一个部分提取信息,并将其粘贴到电子表格另一部分的表格中。
For i = 1 To 24
Range("J11:J100").Select
Set foundCell = Cells.Find(What:="PL " & i, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not foundCell Is Nothing Then
foundCell.Activate
foundCell.Copy
Range("P" & (i + 10)).Select
ActiveSheet.Paste
End If
Next
主要问题是我还希望使用foundCell作为参考来复制周围列的信息,例如。 foundCell.Offset(, -4).Copy
我添加了这个,但它不起作用(附录已标记):
For i = 1 To 24
Range("J11:J100").Select
Set foundCell = Cells.Find(What:="PL " & i, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not foundCell Is Nothing Then
foundCell.Activate
foundCell.Copy
Range("P" & (i + 10)).Select
ActiveSheet.Paste
' BEGIN ADDITION
foundCell.Offset(, -4).Copy
Range("S" & (i + 10)).Select
ActiveSheet.Paste
'END ADDITION
End If
Next
我测试了一下,发现现在找到的FoundCell引用了粘贴数据的范围而不是原始范围。
任何人都可以帮助我吗?我对任何事情都持开放态度。我觉得最好的解决方案是将foundCell变成一个范围,但我不知道该怎么做。
答案 0 :(得分:3)
我认为这会做你想要的。在J11:J100范围内找到所需的单元格后,它会查看F列中与找到的单元格对应的单元格,并将它们粘贴到所需的单元格中。
SELECT distinct wp_posts.post_title, IF (wp_term_taxonomy.taxonomy = 'calificaciones', wp_terms.slug, 'no') as calificacion
FROM wp_posts
JOIN wp_term_relationships ON (wp_term_relationships.object_id = wp_posts.ID)
JOIN wp_term_taxonomy ON (wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id)
JOIN wp_terms ON (wp_terms.term_id = wp_term_taxonomy.term_id)
AND wp_posts.post_type = 'ultimas-noticias'
#AND wp_term_taxonomy.taxonomy = 'calificaciones'
与其他答案一样,我避免使用select,因为它只会减慢代码速度。使用多个(命名)范围可以在不使用剪贴板的情况下复制数据。
答案 1 :(得分:2)
以下内容可以解决您的问题:
For i = 1 To 24
Set foundCell = Cells.Find(What:="PL " & i, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not foundCell Is Nothing Then
foundCell.Copy Destination:=foundCell.Parent.Range("P" & (i + 10))
' BEGIN ADDITION
If foundCell.Column > 4 Then
foundCell.Offset(0, -4).Copy Destination:=foundCell.Parent.Range("S" & (i + 10))
End If
'END ADDITION
End If
Next i
基本上,问题是代码中的select
。您可能希望阅读以下有关如何在将来避免它们的帖子:
How to avoid using Select in Excel VBA macros