如图所示,test1
呼叫FillEmptyWith
,但这给了我
编译错误:=预期
有人可以帮忙吗?
Sub FillEmptyWith(Range, val)
For Each cell In Range
If IsEmpty(cell) Then
cell.Value = val
End If
Next cell
End Sub
Sub test1()
FillEmptyWith ((Sheets("In Force Earnix").Range("S10:S20")),"N")
End Sub
答案 0 :(得分:5)
我会避免使用Range
或val
作为变量名。
在调用子程序时,不要将第一个参数括在括号中(因为这会使该范围作为2-D数组而不是Range对象传递给子程序)。
调用子程序时根本不需要括号。
Sub FillEmptyWith(rng As Range, v)
Dim cell as range
For Each cell In rng.Cells
If IsEmpty(cell) Then
cell.Value = val
End If
Next cell
End Sub
Sub test1()
FillEmptyWith Sheets("In Force Earnix").Range("S10:S20"),"N"
End Sub
答案 1 :(得分:0)
正如@TimWilliams指出的那样,括号引起了问题。如果愿意,可以 使用括号,但只能使用一对:
Call FillEmptyWith(Sheets("In Force Earnix").Range("S10:S20"),"N")