根据活动单元格值插入范围

Insert range based on activecell value

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

这是我需要帮助的地方:

我希望仅当活动单元格位于 C 列 具有特定值时,宏才 运行。该值可以在 A1:A10

范围内的列表中找到

activecell必须在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`

例如,我的列表包含汽车、房屋、狗等词。因此,当我的活动单元格位于 C 列并且其中包含这三个值之一并且我单击命令按钮时,我希望宏为 运行。如果活动单元格不在 C 列中或不是这三个值之一,则会出现 MsgBox。

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

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

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