我试图在某些变量前加一个+号,如果它们是正数的话。 例如:
Sub mySub()
Dim cash As Variant
End Sub
如果我这样做,它的效果很好:
Dim plus As String
plus = "+"
If cash > 0 Then
cash = plus & cash
Else
cash= cash
End If
但是我正在寻找一个子或函数来获取我的所有变量,如果它们是正数的话,在它们前面添加一个+号。
sub NewSub(i As Variant)
If i > 0 Then
i = plus & i
Else
i = i
End If
End sub
但它似乎不起作用,因为它没有向我显示任何内容(然后我在excel的单元格中显示我的变量)。功能也不起作用。
有关如何创建子/函数的任何想法吗?我可以以任何方式遍历我的变量吗?
答案 0 :(得分:3)
首先,开始使用Option Explicit,它强制您显式声明每个变量,并在VBA编辑器中捕获不匹配错误,而不是在运行时。
接下来,如果您要通过在左端添加“加号”来将数值变量更改为字符串,则原始变量必须是变体类型。如果要将参数传递给子过程并让子变更,则参数必须为ByRef
。
或者,您可以将变量推送到函数中并返回新值。
Option Explicit
Sub main()
Dim cash As Variant, cash2 As Variant
cash = 10
Debug.Print cash '10 (as number)
AddPlus cash
Debug.Print cash '+10 (as string)
cash = 10
Debug.Print cash '10 (as number)
cash = udfAddPlus(cash)
Debug.Print cash '+10 (as string)
End Sub
Sub AddPlus(ByRef i As Variant)
If i > 0 Then
i = "+" & i
Else
i = i
End If
End Sub
Function udfAddPlus(i As Variant)
If i > 0 Then
udfAddPlus = "+" & i
Else
udfAddPlus = i
End If
End Function
Debug.Print
命令将输出发送到VBE的Immediate window。