VBA代码,用于根据其中的值选择销售
我正在尝试编写一小段代码,用于选择A1:J10范围内包含“D”的所有单元格。对不起,如果下面的代码是次优的目的,但我试图使用这作为一种学习语言的手段。代码中似乎没有明显的错误(对我来说),但当我尝试运行它时,它会显示“无效的过程调用或参数”VBA代码,用于根据其中的值选择销售,vba,Vba,我正在尝试编写一小段代码,用于选择A1:J10范围内包含“D”的所有单元格。对不起,如果下面的代码是次优的目的,但我试图使用这作为一种学习语言的手段。代码中似乎没有明显的错误(对我来说),但当我尝试运行它时,它会显示“无效的过程调用或参数” Option Explicit Dim t As Range Dim finalrange As Range Sub selectallbattleships() For Each t In Range("A1:J10") If
Option Explicit
Dim t As Range
Dim finalrange As Range
Sub selectallbattleships()
For Each t In Range("A1:J10")
If t.Value = "D" Then Set finalrange = Application.Union(finalrange, t)
Next t
finalrange.Select
End Sub
您必须给
finalrange
一个初始范围,否则它以Nothing
开始。代码在应用程序中失败。Union(finalrange,t)
因为它试图联合什么都不做
这里有几个问题
首先,您的Dim语句应该在sub中。接下来,您不能将任何内容联合起来,因此您需要检查finalrange是否已分配给任何内容,然后决定如何处理它-在这种情况下,如果尚未分配,则只将其分配给t
,否则,union
。最后,在union
之前,您不需要“应用程序”
Sub selectallbattleships()
Dim t As Range
Dim finalrange As Range
For Each t In Range("A1:J10")
If t.Value = "D" Then
If finalrange Is Nothing Then
Set finalrange = t
Else
Set finalrange = Union(finalrange, t)
End If
End If
Next t
finalrange.Select
End Sub
仅供参考,标注的变量不需要在子例程中。如果他们希望将它们设置为可由其他子例程访问的全局变量,该怎么办。