如果这听起来像一个非常愚蠢的问题,但我对使用Excel和VBA并花费了更多时间处理其他语言,我很抱歉。我发现我编写的代码更加健壮,我一直在编写相同的代码块来一遍又一遍地做同样的事情。有没有一种方法可以调用这段代码,并获取我正在查找的值并将其存储为我想要的变量,然后将其用于不同的子类中。VBA Sub返回一个值
希望这个例子能让它更加清晰。我想从A1开始搜索第1行的所有值,直到出现空白值。我想在其中找到值为“Frequency”的单元格,然后返回列索引号。
Sub findFrequency()
'find "Frequency" colum and save the column index number
Dim fFreq As String
Dim FreqCol As Variant
Range("A1").Select
fFreq = "Frequency"
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value = fFreq Then
FreqCol = ActiveCell.Column
Exit Do
End If
ActiveCell.Offset(0, 1).Select
Loop
End Sub
现在最好我可以写一个不同的,从上面的代码
Sub Execute()
Call findFrequency
Cells(5, FreqCol).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
End Sub
我得到一个错误使用的值当我运行这一点,因为FreqCol的值不从运行设置为任何调用findFrequency线。有没有更好的方法来做到这一点,或者我应该有不同的结构?
'Sub'不能返回一个值(但它可以将值分配给一个全局变量)。你在找什么是'Function'。 –