查找要复制到主工作簿的特定单元格

时间:2016-02-05 16:19:58

标签: excel vba excel-vba

我想在打开的工作表中找到一个特定的单元格,并将数据3单元格向右复制到主工作簿中(而不是刚刚打开的工作簿)。

下面的宏循环遍历txt文档中的所有文件,然后打开并关闭它们。在每个文件中都有一个名为ADA的单元格,我想将单元格3复制到右边,但是ADA并不总是在同一个地方,所以我需要搜索它。例如找到单元格ADA并说它在该工作簿的E6中,我需要将E6与H6,I6和J6一起复制到我运行宏的原始主工作簿中。

Sub GatherData()
Dim objFSO As Object
Dim objWB As Workbook
Dim strFN As String
Dim objTF As Object

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTF = objFSO.OpenTextFile("U:\Time series project\doclist.txt")
On Error Resume Next
Do While Not objTF.AtEndOfStream
    strFN = objTF.readline()
    Set wb = Workbooks.Open(strFN)
    If wb Is Nothing Then
        Debug.Print strFN
    Else    
        wb.Close False
        Set wb = Nothing
    End If
Loop
On Error GoTo 0
End Sub

我在想添加像

这样的东西
Dim c As Range
Dim newcell
Dim tmp
Dim wrkbk As WorkBook
Dim sht As WorkSheet

Set c = .Find(findValues(i), LookIn:=xlFormulas)
If Not c Is Nothing Then
    newcell = c.Offset(0, 4).Value
    Do
        tmp.Offset(0, 2).Value = tmp.Value
        tmp.Offset(0, 3).Value = newcell
End If

但无法使这个概念适合第一个代码。

1 个答案:

答案 0 :(得分:0)

您只需使用

即可
Dim copyrange as Range
Dim originalcell, startingcell, endingcell as String

    originalcell = sht.Range("ADA").Address
    startingcell = sht.Range("ADA").Offset(0,3).Address
    endingcell = sht.Range("ADA").Offset(0,5).Address

    copyrange = originalcell & "," & startingcell & ":" & endingcell

然后只需复制该范围并粘贴到您想要的位置。