我是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
上满足值的地方,下面是一个单元格。
答案 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