Vba 从Excel调用到更改格式的引用范围
我正在尝试从电子表格创建一个调用,该调用将更改为单元格的格式。当我显式枚举范围(即“C7”)时,我的代码工作。当我在excel函数调用中隐式设置它时,它不会: 如果我在单元格中输入=call_color,“C7”变为绿色。如果我把=Color\u Green(C7)放在同一个单元格中,它就不起作用了Vba 从Excel调用到更改格式的引用范围,vba,excel,range,Vba,Excel,Range,我正在尝试从电子表格创建一个调用,该调用将更改为单元格的格式。当我显式枚举范围(即“C7”)时,我的代码工作。当我在excel函数调用中隐式设置它时,它不会: 如果我在单元格中输入=call_color,“C7”变为绿色。如果我把=Color\u Green(C7)放在同一个单元格中,它就不起作用了 Sub call_color() Dim TestVal As Range Set TestVal = Range("C7") Call Color_Green(TestVa
Sub call_color()
Dim TestVal As Range
Set TestVal = Range("C7")
Call Color_Green(TestVal)
End Sub
Sub Color_Green(ByRef MyRng As Range)
' Color Green Macro
MyRng.Select
With Selection.Interior
.Color = RGB(0, 250, 0)
End With
End Sub
我希望能够在vb中进行一些计算,并根据这些计算格式化单元格。如何传递允许.interior函数工作的范围?不要使用select或selection并提供父工作表引用
Sub call_color()
Dim TestVal As Range
Set TestVal = worksheets("sheet1").Range("C7")
Color_Green TestVal
End Sub
Sub Color_Green(ByRef MyRng As Range)
' Color Green Macro
MyRng.Interior.Color = RGB(0, 250, 0)
End Sub
可以使用sub执行此操作,但不能使用从工作表中调用的UDF来更改单元格的格式或除调用者之外的任何单元格的值。