通常,我必须从excel工作表中提取一些数据。大多数情况下,工作表足够小,可以手动完成操作,这意味着需要查找特定的字符串并手动复制粘贴感兴趣的单元格。
这次,我有一个超过5000行的文件,这使我无法像往常一样执行此操作。这是编写简单代码自动执行此操作的好时机。就我而言,最好的方法是:
- 1)查找包含术语“文本”的单元格
- 2)对于每个单元格:
- 2.1)选择一个单元格范围
- 2.2)复制单元格范围并将其粘贴到此目标范围
由于我不习惯编码,因此我在互联网上搜索行为相似的一些代码。到目前为止,我发现的是1)步骤的代码。在以下代码中,单元格的地址写在目标范围内:
Dim findWhat As String,address As String
Dim fsr As Range,rs As Range,fCount As Long
findWhat = InputBox("Enter what you want to find?","Find what...")
If Len(findWhat) > 0 Then
'clearFinds
Set frs = Range("A1:AW6000")
Set rs = frs.Find(What:=findWhat)
If Not rs Is Nothing Then
address = rs.address
Do
Range("bb1").Offset(fCount).Value = rs.Value
Range("bc1").Offset(fCount).Value = rs.address
Set rs = frs.FindNext(rs)
fCount = fCount + 1
Loop While Not rs Is Nothing And rs.address <> address
End If
End If
关于步骤2.1),我知道我必须实现此步骤才能为步骤1)中找到的每个单元格选择一个范围:
Range(activeCell,activeCell.Offset(4,9))
最后,我计划将以下代码用于步骤2.2):
Worksheets("Sheet1").Range("A1:D4").Copy _
destination:=Worksheets("Sheet2").Range("E5")
尽管我付出了很多努力,但我不知道如何正确编写代码以使此代码正常工作。有人可以给我一点帮助吗?