Excel 基于activecell值插入范围

Excel 基于activecell值插入范围,excel,vba,loops,range,Excel,Vba,Loops,Range,目前,我有一个代码,可以将同一工作簿中不同工作表的范围复制到激活宏的工作表 这就是我需要帮助的地方: 我希望宏仅在activecell位于C列且具有特定值时运行。此值可在范围A1:A10 activecell必须位于C列的部分,我已经管理过了。现在是另一部分。这是我到目前为止的代码 Application.ScreenUpdating = False If ActiveCell.Column <> 3 Then MsgBox "Select a cell in column

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

这就是我需要帮助的地方:

我希望宏仅在activecell位于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`
Application.ScreenUpdate=False
如果是ActiveCell.3列,则
MsgBox“选择C列中的单元格”,请使用感叹号
其他的
带有图纸(“信息”)。范围(“A25:J27”)。副本
工作表(“主”)。激活
ActiveCell.End(xlDown).Offset(2).EntireRow.Insert shift:=xlDown
以
如果结束
Application.ScreenUpdating=True
Application.CutCopyMode=False
'将值放入单元格以触发更改事件宏
范围(“A1”)。值=1`
例如,我的列表包含单词car、house、dog。因此,当我的activecell位于C列中,并且有这三个值中的一个时,我单击CommandButton,我希望宏运行。如果activecell不在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

很抱歉反应太晚,本周末我没有excel工作簿可供使用。我试过你的代码,效果很好,谢谢。是否也可以将搜索范围更改为其他工作表?示例:[D1:D3]让我们说:工作表(“sheet1”)。范围(“D1:D3”)如何管理?因为工作表(“sheet1”).range(“D1:D3”)给了我一个错误尝试ThisWorkbook.Worksheets(“sheet1”)