根据activecell值插入范围

时间:2015-02-06 15:08:09

标签: excel vba loops range

目前我有一个代码可以将同一工作簿中不同工作表的范围复制到我激活宏的工作表中。

这是我需要帮助的地方:

我希望宏只在activecell位于C列并且具有特定值时运行。此值可在范围A1:A10

的列表中找到

活动单元必须在C列的部分,我已经管理过了。现在是另一部分。这是我到目前为止的代码。

Application.ScreenUpdating = False

If ActiveCell.Column <> 3 Then
    MsgBox "Select a cell in column C", vbExclamation

Else
    With Sheets("Info").Range("A25:J27").Copy 
        Sheets("Main").Activate
        ActiveCell.End(xlDown).Offset(2).EntireRow.Insert shift:=xlDown
    End With
End If

Application.ScreenUpdating = True
Application.CutCopyMode = False

'puts value in cell to trigger change event macro
Range("A1").Value = 1`

例如,我的列表包含单词car,house,dog。因此当我的activecell在C列中并且其中包含这三个值中的一个并且我单击CommandButton时,我希望宏运行。如果activecell不在C列中,或者不是这三个值中的一个,则会出现MsgBox。

我真的很感激这最后一部分的帮助,因为我似乎无法弄明白。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

在函数的帮助下,即包含可能:

If ActiveCell.Column = 3 And Contains(ActiveCell.Value, [d1:d3]) Then
'your code
End If


    Public Function Contains(val, searchrange As Range)
    Dim item As Range
    For Each item In searchrange
    If val = item.Value Then Contains = True: Exit Function
    Next
    Contains = False
    End Function