Excel VBA,如果范围内的活动单元格不等于字符串调用宏
我对VBA的世界很陌生。我正试图添加到现有的私有子系统(更改)。当范围内的活动单元格(“K2:K700”)不等于单词“Down”时,我试图“激发”宏“DelRCE” 以下代码不起作用:Excel VBA,如果范围内的活动单元格不等于字符串调用宏,excel,vba,Excel,Vba,我对VBA的世界很陌生。我正试图添加到现有的私有子系统(更改)。当范围内的活动单元格(“K2:K700”)不等于单词“Down”时,我试图“激发”宏“DelRCE” 以下代码不起作用: Dim txt As String Dim rng As Range Dim vec As String txt = ActiveCell.Value rng = ("K2:K700") vec = "Down" If r_ng.txt <> vec Then Call Macro End
Dim txt As String
Dim rng As Range
Dim vec As String
txt = ActiveCell.Value
rng = ("K2:K700")
vec = "Down"
If r_ng.txt <> vec Then
Call Macro
End If
Dim txt作为字符串
变暗rng As范围
作为字符串的Dim vec
txt=ActiveCell.Value
rng=(“K2:K700”)
vec=“向下”
如果r_ng.txt vec那么
调用宏
如果结束
我想您正在寻找这样的产品:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim key As String
Dim rng As Range
'Set the word you want to search for. Take capital letters into account
key = "down"
'Set worksheet to the first sheet in your workbook
Set ws = ThisWorkbook.Sheets(1)
'Change this to the range you want to search
Set rng = ws.Range("A1:A100")
'Check if the target is in the range
If Not Intersect(Target, rng) Is Nothing Then
If Target.Value <> key Then
'Change this to you function call
MsgBox "The target is inside the range and the value is different from '" & key & "'"
End If
End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
将ws设置为工作表
将键变暗为字符串
变暗rng As范围
'设置要搜索的单词。考虑大写字母
key=“向下”
'将工作表设置为工作簿中的第一张工作表
设置ws=ThisWorkbook.Sheets(1)
'将其更改为要搜索的范围
设置rng=ws.范围(“A1:A100”)
'检查目标是否在范围内
如果不相交(目标,rng)则为空
如果是Target.Value键,则
'将此更改为您的函数调用
MsgBox“目标在范围内,且值与“&key&”不同”
如果结束
如果结束
端接头
将光标放在测试更改子节点内,点击PF5运行它
private Sub Change()
Dim txt As String
Dim rng As Range
Dim vec As String
txt = ActiveCell.Value
rng = ("K2:K700")
vec = "Down"
If r_ng.txt <> vec Then
Call DelRCE ' or "Run DelRCE" if it is a function
End If
End Sub
Private Sub test_Change()
call Change
End Sub
private子变更()
以字符串形式显示文本
变暗rng As范围
作为字符串的Dim vec
txt=ActiveCell.Value
rng=(“K2:K700”)
vec=“向下”
如果r_ng.txt vec那么
如果是函数,则调用“DelRCE”或“Run DelRCE”
如果结束
端接头
专用子测试_变更()
找零钱
端接头
将以下代码添加到相关的工作表模块中,在工作表\u Change
事件下:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vec As String
vec = "Down"
If Not Intersect(Target, Range("K2:K700")) Is Nothing Then ' check that modifed cell is inside the Range("K2:K700")
If Target.Count > 1 Then Exit Sub ' Optional : if more than 1 cell selected exut the sub
If Not Target.Value Like vec Then ' Also possible to use: If Target.Value <> vec
Call Macro
End If
End If
End Sub
选项显式
私有子工作表_更改(ByVal目标作为范围)
作为字符串的Dim vec
vec=“向下”
如果不相交(目标,范围(“K2:K700”))为空,则“检查修改的单元格是否在范围(“K2:K700”)内”
如果Target.Count>1,则退出Sub'可选:如果选择的单元格超过1个,则退出Sub
如果不是像vec那样的Target.Value,那么也可以使用:If Target.Value vec
调用宏
如果结束
如果结束
端接头
您所说的私人Sub(变更)是什么意思?这是否意味着在工作表模块上有更改事件代码?是的,工作表更改。如果搜索词在该范围内,并且在整个范围内循环,并且花费的时间太长,则此操作有效。我需要确定输入范围的最后一个单词是否是指定的单词,然后调用宏。因此,在更改工作表时,您需要检查两件事:1。如果更改的单元格在指定的范围2内。如果第一个选项为“是”,那么它是否具有特定值?是否正确理解?谢谢Noceo。Q1.=是的,第二季度不等于值“Down”对不起耽搁了,周末很忙。我更改了代码以符合您的描述。请注意,它是敏感的。如果需要的话,这可以很容易地解决。没问题。一定要接受答案,让其他有同样问题的人更容易回答。