Vba 命名动态范围并将其转换为变量
我正在尝试根据查找来命名一个范围。然后将该范围定义为我的变量,以便我可以将该变量输入到其他函数中。当我运行代码时,我得到一个类型不匹配错误Vba 命名动态范围并将其转换为变量,vba,excel,Vba,Excel,我正在尝试根据查找来命名一个范围。然后将该范围定义为我的变量,以便我可以将该变量输入到其他函数中。当我运行代码时,我得到一个类型不匹配错误 Sub Faked() Dim r As Range Cells.Find(What:="EE status", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCas
Sub Faked()
Dim r As Range
Cells.Find(What:="EE status", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range(Selection, Selection.End(xlDown)).Name = "Win"
Set r = ("Win")
End Sub
因为斯科特这么说。尝试设置r=范围(“赢”) 要测试
r
是否正确拾取范围,可以执行以下操作
for each c in r
debug.print c
next
编辑:或者如果你像德克一样酷
Set r = [Win]
将代码替换为以下内容:
Dim r As Range
Cells.Find(What:="EE status", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Set r = Range(Selection, Selection.End(xlDown))
r.Name = "Win"
说明:
不能将SET命令与范围对象的name属性一起使用。首先需要使用范围选择填充对象,然后您可以使用对象的属性为其指定值,在本例中为其指定名称属性
希望有帮助 试试
Set r=range(“Win”)
@findwindow Dude我希望你能回答其中一些问题。我们需要让您在2000以上,以便您可以编辑问题。对于r|debug.print c|next
?您可以debug.print r.Address
它将在即时窗口中显示范围地址。它工作正常。非常感谢你们两位@Findwindow我发现,如果你在线,我的问题会比任何时候都得到更清晰、更快的回答。很高兴提供帮助,只是别忘了跟踪代码中的所有对象变量。。。给他们一个容易理解的名字,比如“rngMyEmployeeStatus”等等……!;)哈哈,这不值得投4票。我的意思是,只得到了同样数量的选票,而且更令人印象深刻。编辑:还有,不管是谁做的,他给我留下了一条评论,但在我抓到之前就把它删除了……哈哈,你想让我否决它吗?除非你同意,否则我不会这么做…@UnEscapedCharacter我同意。@DirkReichel你在这么做吗?@findwindow刚刚试过,但我想我还是太新了,所以谢谢你的支持,随时欢迎你的支持,哈哈