背景:
我需要检索数组公式(在excel接口中)计算的值,以便在那里循环结果。
的 问题:
我还没有找到如何存储它计算的所有值的方法。我只能存储第一个。
的 代码:
Sub test()
Dim ArrTopValues() As Long
'Fails
ArrTopValues = Application.Evaluate("=LARGE(A1:A11,{1,2,3})")
End Sub
我需要通过按" F9"来处理公式可以在excel界面上保存的3个值。
进一步的想法
我知道我可以编写一个重新创建Large函数的UDF(甚至只是在大函数上评估" k"并以这种方式构建Array变量)。请理解我正在寻找如何将这些数组评估存储到更多场景中,并且已经完成了解决此问题的解决方法,以使其工作"。
答案 0 :(得分:3)
使用INDEX返回数组,您需要将数组变为变量:
#include <array>
#include <iostream>
template <typename S, typename T>
struct Homomorphism
{
//Defined in specialization: static const T morph(const S&);
static constexpr bool is_instance = false;
using src = S;
using dest = T;
};
template <typename S, typename T>
struct Monomorphism : Homomorphism<S, T>
{
//Defined in specialization: static const T morph(const &S);
static constexpr bool is_instance = false;
using src = S;
using dest = T;
};
template <typename, typename>
struct CompositionMorphism;
template <template <typename, typename> class C,
typename S, typename T, typename U>
struct CompositionMorphism<C<S, T>, C<T, U>>
{
using comp = C<S, U>;
static const U morph (const S & s)
{ return C<T, U>::morph(C<S, T>::morph(s)); }
};
int main ()
{
Homomorphism<int, long> h0;
Homomorphism<long, long long> h1;
Monomorphism<int, long> m0;
Monomorphism<long, long long> m1;
CompositionMorphism<decltype(h0), decltype(h1)> h2;
CompositionMorphism<decltype(m0), decltype(m1)> m2;
// compiler error
//CompositionMorphism<decltype(h0), decltype(m1)> hm;
static_assert( std::is_same<Homomorphism<int, long long>,
decltype(h2)::comp>{}, "!" );
static_assert( std::is_same<Monomorphism<int, long long>,
decltype(m2)::comp>{}, "!" );
}