ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: seer_et

[求助] EXCEL DDE 和 RTD 資料連結更新問題請教

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-10-19 22:57 | 显示全部楼层
liucqa 发表于 2016-10-19 20:33
这个得写rtd的负责。而且一旦rtd通知excel更新2数据,还是会变的。所以得给rtd写个开关函数,在打开文件 ...

显然楼主的RTD Server不是自编自用的
软件公司没能很好理解用户的需求、或用户也未必很能清晰及时地提供需求描述,造成的窘况就是:软件公司怪客户日后的改进要求大大超出最初的合同范围,要加价。而用户觉得必须的强化日常功能加价得太离谱。其实用户在软件实际使用一段时间后,后续提出的更切实际的要求会让软件商花费超乎想象多的人力,完全是一个定制软件,能便宜吗?
我以前服务的一个公司花上千万搞了SAP,其实就是一个数据仓库,不停地往里面扔数据,随后下边使用者慢慢明晰要提取的数据要求,专用模块报价吓死很多官僚,但是台面上没有那个货敢说SAP不行,基础数据及报表功能都是下面员工用Excel顶住,SAP输入是应付上边必须的数据共享,上面装作很好地用上了高大上的SAP,感谢这个CxO那个CyO……其实,Excel一直是唯一的王者!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-10-19 23:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我的天 !看來我把問題捅好大
按兩位前輩示下,此題就於應用端是無解了,
拔掉網路線試試 ..

TA的精华主题

TA的得分主题

发表于 2016-10-20 06:39 来自手机 | 显示全部楼层
yachtz 发表于 2016-10-19 22:57
显然楼主的RTD Server不是自编自用的
软件公司没能很好理解用户的需求、或用户也未必很能清晰及时地提供 ...

哈哈,没钱可千万别用SAP

TA的精华主题

TA的得分主题

发表于 2016-10-20 06:41 来自手机 | 显示全部楼层
seer_et 发表于 2016-10-19 23:54
我的天 !看來我把問題捅好大
按兩位前輩示下,此題就於應用端是無解了,
拔掉網路線試試 ..

我觉得禁用com加载项比拔网线要好吧,频繁的拔线,可能会伤及RJ45头

TA的精华主题

TA的得分主题

发表于 2016-10-20 12:25 | 显示全部楼层
拔线解决不了问题吧。
楼主描述的是期望在Excel工作簿打开时显示的数据是上次关闭时的数据,若RTD编写时未设置GetNewValues=False,打开Excel文件时,要么得到即时数据,拔线则得不到实时数据(显示空值或0)。
若要手动更新,客户端设置application.RTD.ThrottleInterval=-1,要更新时用语句application.RTD.RefreshData即可

TA的精华主题

TA的得分主题

发表于 2016-10-20 14:32 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-10-20 16:57 | 显示全部楼层
yachtz 发表于 2016-10-20 12:25
拔线解决不了问题吧。
楼主描述的是期望在Excel工作簿打开时显示的数据是上次关闭时的数据,若RTD编写时未 ...

我嘗試在Excel Private Sub Workbook_Open()加入
m = MsgBox("資料是否要連結更新 ?", 4 + 64, "RTD連結")
If m = 6 Then
   Application.RTD.ThrottleInterval = 1000
Else
   Application.RTD.ThrottleInterval = -1
End If
基本上可以做到Excel工作簿打開時詢問是否RTD要連結更新,選[是]即立馬連結更新沒有問題,選[否]則悲劇啊 !
資料全沒了(顯示#N/A),如何能保留上次關閉時的數據呢 ?

TA的精华主题

TA的得分主题

发表于 2016-10-22 09:52 | 显示全部楼层

本帖最后由 liucqa 于 2016-10-22 10:01 编辑
seer_et 发表于 2016-10-20 16:57
我嘗試在Excel Private Sub Workbook_Open()加入
m = MsgBox("資料是否要連結更新 ?", 4 + 64, "RTD連結 ...
ConnectData(Topic topic, IList<string> topicInfo, ref bool newValues)
参数说明:
GetNewValues,它 用于确定是否总是获取最新数据,如果这个参数传入true,则每次保存Excel文档以后,再次重新打开时,看到的不一定是上次保存时的数据,而是最新的实时数据,这也是一个引用类型的参数。通常如果不设置的话,再次打开包含RTD的表格时,显示的是最后一次请求的数据。

刚测试了一下,如果设成false,文件打开的时候是公式初始值为0,设成true,公式初始值是ConnectData返回的内容。
所以,麻烦了,你说的问题不知道咋解决。

你可以去这里提出你的问题。
https://github.com/OfficeDev/VBA ... 1f1-4e0578cc7511.md



TA的精华主题

TA的得分主题

发表于 2016-10-22 10:03 | 显示全部楼层
本帖最后由 liucqa 于 2016-10-22 10:06 编辑

临时的办法,可以考虑在关闭workbook的时候,copy数值到一个副本sheet保留单元格内容

TA的精华主题

TA的得分主题

发表于 2016-10-22 10:09 | 显示全部楼层
yachtz 发表于 2016-10-19 14:20
RTD Server的ConnectData接口中,将这个boolean型的GetNewValues参数设置为False

VB6:Function IRtdSer ...

好像GetNewValues=false的时候,打开文件,excel给直接填个0。你有没有RTD插件的代码,测试一下看看
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 01:44 , Processed in 0.043279 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表