Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我使用sql加载数据时,Select Data for excel Graph会看到零_Excel_Vba_Load - Fatal编程技术网

当我使用sql加载数据时,Select Data for excel Graph会看到零

当我使用sql加载数据时,Select Data for excel Graph会看到零,excel,vba,load,Excel,Vba,Load,我对Excel(2016)/VBA宏有问题。如果需要,我很乐意提供更多细节或文件副本 总之,这就是正在发生的事情: 我有一本有五张工作表的工作簿。其中三个包含表示矩阵(1和2)的两个轴的数据、矩阵(3)的单元格、一张将表1到表3中的数据汇集在一起的表(4)以及一张图形工作表(5-基于表4中的范围) 我这样做的原因是我想一次绘制一部分数据,否则太混乱了。一个简单的表单用于选择要显示的数据集的哪一列,并允许单步遍历要显示的项目列表,以便一次只显示部分范围。在表单上单击按钮时,在第4页的单元格中设置变

我对Excel(2016)/VBA宏有问题。如果需要,我很乐意提供更多细节或文件副本

总之,这就是正在发生的事情:

我有一本有五张工作表的工作簿。其中三个包含表示矩阵(1和2)的两个轴的数据、矩阵(3)的单元格、一张将表1到表3中的数据汇集在一起的表(4)以及一张图形工作表(5-基于表4中的范围)

我这样做的原因是我想一次绘制一部分数据,否则太混乱了。一个简单的表单用于选择要显示的数据集的哪一列,并允许单步遍历要显示的项目列表,以便一次只显示部分范围。在表单上单击按钮时,在第4页的单元格中设置变量(图形范围之外)。填充该表上图形范围的公式使用这些变量从表1到表3中选择所需数据

最初,我使用宏从文本文件中读取数据,填充了表1到表3中的数据。在打开Excel工作簿之前,必须从数据库中填充这些文件。我决定通过改变宏直接查询数据库来“简化”这个过程

花了一段时间才开始,一切看起来都很好。我可以看到前四个工作表中的数据已正确填充(包括能够单击表单按钮并更改图形范围的内容),但图形在每个单元格中看到的值为零。当我右键单击图形并选择“选择数据”,然后在左侧框的“图例条目(系列)”列表中选择一项,然后单击“编辑”时,我看到系列名称和系列值的单元格范围都正确显示,“名称”的预览值正确,但“系列”的预览值不正确显示由逗号分隔的零组成的字符串

我可以切换工作表以查看第4页上的“GraphData”,同时保持对话框打开,并查看正在引用的实际单元格,它们不是0、0、0。。。他们是78,69,44

零从哪里来


我甚至保存了工作簿-保留更改-因此保留了工作表1到3的内容,在“工作簿打开”宏中设置了一个停止符,这样它就不会运行,但当我重新打开它时,仍然会得到零。

很抱歉打扰您。我解决了这个问题。一如往常,沿途有有趣的课程

我从一个用数据库中的数据填充文本文件的查询开始。因为我希望Excel将该文件作为csv文件接收,所以所选数据的每一行的输出都是一个字符串列,其中包含键和数据值,它们之间带有逗号,这些数字在sql中转换为VARCHAR,以便我可以将它们连接到字符串中

当我决定直接从Excel中使用查询,而不是将文件置于两者之间时,我删除了连接运算符和逗号,并在sql语法中在它们之间加了一个逗号,但没有删除数字到VARCHAR的转换

对于QueryTable,导入文本文件时,可选属性之一是表示传入数据的数据类型的代码数组。我假设使用直接查询时,Excel将根据内容分配数据类型,就像它对键入的值分配数据类型一样(除非您指定另一种类型)。很明显,Excel和源数据库除了交换数据集本身之外,还交换信息,这些信息告诉Excel列的数据类型—发送时

绘图函数将我的数据视为字符串,因此赋值为零。我首先在GraphData工作表上的查找函数周围放置一个Value()。这是可行的,但后来我更进一步,实际更改了Sql,因此它发送数字数据而不转换为VARCHAR,然后在不更改Value()的情况下工作


我从来没有想到Excel不会只看到一个数字并将其视为一个数字,而Sql Server不会告诉Excel它是一个字符串。

您的图形似乎指向了错误的位置?很难看出我们如何在这里提出任何真正的建议。可能有助于发布您代码中具有代表性的部分。