目前我有一个代码可以将同一工作簿中不同工作表的范围复制到我激活宏的工作表中。
这是我需要帮助的地方:
我希望宏只在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。
我真的很感激这最后一部分的帮助,因为我似乎无法弄明白。谢谢你的时间。
答案 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