我遇到了一个我无法弄清楚的问题(我在VBA中总计n00b)。我有一个函数,它根据另一个表中的值填充一组单元格。基本上我提供了一个参数(状态名称),它将另一个Sheet,查找该状态并返回具有该状态的总体值的所有行。这是功能:
Public Function MyFunction2(parVal As String)
myRange = Worksheets("Dashboard").Range("A20:A3000")
rangeCounter = 1
For Each cell In Worksheets("StateList").Range("A2:A60").Cells
If cell.Value = parVal Then
stateRow = cell.EntireRow
statePopulation = stateRow(1, 8)
myRange(rangeCounter, 1) = statePopulation
rangeCounter = rangeCounter + 1
End If
Next cell
MyFunction2 = rangeCounter
End Function
它正确查找值并正确地将它们插入myRange,但它们从未出现在实际的Sheet(仪表板)中。
非常感谢任何关于为什么......
的指示答案 0 :(得分:2)
您如何获得该范围存在问题。试试这样:
Dim myRange As Range
Set myRange = Worksheets("Dashboard").Range("A20:A3000")
并改变这一点:
myRange(rangeCounter, 1) = statePopulation
到此:
myRange.Cells(rangeCounter, 1) = statePopulation
此外,如果从UDF调用此函数,则会出现错误,因为您无法从UDF更新其他单元格。
答案 1 :(得分:1)
UDF 只会向函数所在的单元格返回一个整数值。 UDF 无法更改其他工作表单元格。