我有一个函数,它接收一个ParamArray,我试图将未知数量的参数传入。我循环遍历行并根据单元格是否为空来传入数字,但似乎我必须将每个数字作为自己的参数传递。我尝试将数字放入一个数组并传递给它,但它最终成为函数中数组的数组并且无法正常工作。有没有办法做到这一点?谢谢。
例如:
Dim myarray() as double
function test(ParamArray arg() as variant) as single
'function does stuff with arg(s)
end function
for each cell in [somerange]
if cell <> "" then
'save cell value into an myarray?
endif
next
'want to pass those saved values into function
call test(myarray)
编辑:我找到了一种解决方法。我意识到我可以将一个范围传递给函数,所以我只是创建一个临时范围并传入它。
答案 0 :(得分:1)
从Cpearson Passing And Returning Arrays With Functions,这就是你将一个数组传递给一个函数并循环该数组的方法:
Sub DoSomethingWithPassedArray(ByRef Arr() As Long)
Dim N As Long
For N = LBound(Arr) To UBound(Arr)
'...do something
Next N
End Sub
此外,它还不清楚你想做什么......
答案 1 :(得分:0)
在这里(与我在Calling vba macro from python with unknown number of arguments中的问题有关)
使用此:
private func getAddress(from coordinates: CLLocation) {
CLGeocoder().reverseGeocodeLocation(coordinates) { placemark, error in
guard error == nil,
let placemark = placemark
else
{
// TODO: Handle error
return
}
if placemark.count > 0 {
let place = placemark[0]
let city = place.locality
let country = place.country
let countryIsoCode = place.isoCountryCode
}
}
}
干杯。