将范围从VBA传递到C++; 我尝试从VBA到VSTO C++ DLL的范围。如果我使用的是64位的Excel 2010,下面的代码可以正常工作,但当我将其用于Excel 2016时,出现了一个错误,有人知道如何解决吗 #include <fstream> #include <iostream> #include "ExcelImports.cpp" #include <vector> using namespace std; ofstream outputFile("outputFile.txt"); double __stdcall RangeTest(Excel::RangePtr &pRange, long N1, long N2 ) { long sum = 0; for (int i = 1; i <= N1; i++) { for (int j = 1; j <= N2; j++) { outputFile << (((Excel::RangePtr)pRange->Item[i][j])->Value).dblVal << " "; } outputFile << endl; } return 0; }

将范围从VBA传递到C++; 我尝试从VBA到VSTO C++ DLL的范围。如果我使用的是64位的Excel 2010,下面的代码可以正常工作,但当我将其用于Excel 2016时,出现了一个错误,有人知道如何解决吗 #include <fstream> #include <iostream> #include "ExcelImports.cpp" #include <vector> using namespace std; ofstream outputFile("outputFile.txt"); double __stdcall RangeTest(Excel::RangePtr &pRange, long N1, long N2 ) { long sum = 0; for (int i = 1; i <= N1; i++) { for (int j = 1; j <= N2; j++) { outputFile << (((Excel::RangePtr)pRange->Item[i][j])->Value).dblVal << " "; } outputFile << endl; } return 0; },c++,vba,excel,C++,Vba,Excel,定义文件 Library "Teste" EXPORTS RangeTest 你试过换衣服吗 游侠 到 射程 我不确定这是否与Excel::Rangeptor完全相同,但它的工作原理相同,我非常感谢您的评论 #include <OAIdl.h> // for VARIANT, BSTR etc double __stdcall RangeTest(VARIANT * x) { int cols = 0.0; int rows = 0.0; rows = x->parra

定义文件

Library "Teste"
EXPORTS
RangeTest
你试过换衣服吗

游侠

射程


我不确定这是否与Excel::Rangeptor完全相同,但它的工作原理相同,我非常感谢您的评论

#include <OAIdl.h> // for VARIANT, BSTR etc

double __stdcall RangeTest(VARIANT * x)
{

int cols = 0.0;
int rows = 0.0;

rows = x->parray[0].rgsabound[1].cElements;
cols=x->parray[0].rgsabound[0].cElements;

ofstream outputFile("outputFile.txt");
long c= 0;

for (int i = 0; i < rows; i++)
    {

     for (int j = 0; j < cols ;j++)
       {

         outputFile << ((((tagVARIANT *)(*(x->parray)).pvData))[i + j*rows]).dblVal << " ";

       }

        outputFile << endl;

     }

return 0;
#包括//变量、BSTR等
双重标准呼叫范围测试(变型*x)
{
int cols=0.0;
int行=0.0;
rows=x->parray[0]。RGSABOND[1]。芹菜;
cols=x->parray[0]。RGSABOND[0]。芹菜;
流输出文件(“outputFile.txt”);
长c=0;
对于(int i=0;ioutputFile parray().pvData()[i+j*行].dblVal刚刚尝试了它,但它没有编译,有什么建议吗?
#include <OAIdl.h> // for VARIANT, BSTR etc

double __stdcall RangeTest(VARIANT * x)
{

int cols = 0.0;
int rows = 0.0;

rows = x->parray[0].rgsabound[1].cElements;
cols=x->parray[0].rgsabound[0].cElements;

ofstream outputFile("outputFile.txt");
long c= 0;

for (int i = 0; i < rows; i++)
    {

     for (int j = 0; j < cols ;j++)
       {

         outputFile << ((((tagVARIANT *)(*(x->parray)).pvData))[i + j*rows]).dblVal << " ";

       }

        outputFile << endl;

     }

return 0;