从两张纸匹配单元格值并粘贴到满足值的位置,从下面的一个单元格开始

时间:2012-02-02 12:14:40

标签: excel vba excel-vba

我是VBA的新手,我正在使用Microsoft Office Excel 2007并且我阅读了论坛,但这对我来说似乎不可能。我有当前的代码复制工作表并在日期中添加一天,并复制包含工作表中重要信息的一系列单元格,以便能够将其粘贴到具有实时信息的日历中,我需要将其粘贴到date是相同的,并且一个单元格低于该值可以位于某个范围内的任何位置。

Sub CopierPetete()
 ActiveWorkbook.ActiveSheet.Copy _
        After:=ActiveSheet
    'update date
        [J1].Value = [J1].Value + 1

   'THIS IS MY POOR ATTEMPT TO MAKE IT WORK
    If Sheets("Sheet5").Range("A1:K100").Value = ActiveSheet.Range("J1").Value Then _  

        ActiveSheet.Range("AA100:AC121").Select
            Selection.Copy
        Sheets("Sheet5").Select
            Sheets("Sheet5").Pictures.Paste Link:=True

    End If

End Sub

我需要它将ActiveAheet单元格J1中的值与Sheet5上的任何单元格匹配,并粘贴为Pictures.Paste Link=True(或者,如果您有更好的主意用于显示实时信息的方法)在Sheet5上满足值的地方,下面是一个单元格。

这是a link to the project

1 个答案:

答案 0 :(得分:1)

如果我理解得很清楚,你打算做的是检查ActiveSheet的值是否>单元格J1存在于名为“Sheet5”的工作表中,范围为A1到K100 。意味着,如果Excel发现任何与A1到K100匹配J1值的单元格,请复制粘贴图片。

这是一个尝试:

Sub CopierPetete()
    Dim rFind as Range

    ActiveWorkbook.ActiveSheet.Copy _
        After:=ActiveSheet
    'update date
        [J1].Value = [J1].Value + 1

    'Find returns a range object, so we use Set
    Set rFind = Worksheets("Sheet5").Range("A1:K100").Find(ActiveSheet.Range("J1").Value, LookIn:=xlValues, lookAt:=xlWhole)

    If Not rFind is Nothing Then
        ActiveSheet.Range("AA100:AC121").Copy
        Worksheets("Sheet5").Activate
        Worksheets("Sheet5").Range(rFind.Address).Offset(0, 1).Activate
        Worksheets("Sheet5").Pictures.Paste Link:=True
    End If
End Sub