首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Excel索引与偏移/间接-我不明白为什么偏移/间接在这种情况下更快

Excel索引与偏移/间接-我不明白为什么偏移/间接在这种情况下更快
EN

Stack Overflow用户
提问于 2011-06-27 09:30:51
回答 2查看 6K关注 0票数 6

我设置了一个工作簿,其中第一个选项卡包含一个参数列表。每一列都是不同实例的一组参数。

然后,我有一个实例的模板表,用户复制了这个模板。模板所做的事情之一就是动态地从第一个工作表中提取参数。用户输入一个列号(1到n),并从要在该实例上使用的第一个表中提取该列的参数。然后,该实例使用这些参数运行数十万行计算。

参数表

示例实例

我的问题似乎与波动性有关。对于大量实例,如果使用偏移量或间接方法获取参数,则工作簿中任何单元格中的任何更改都会导致在每个实例表上重新检索参数,因此每个工作表每次都会重新计算,每次更改时冻结工作簿约3秒。

我想我可以用索引来减少这种情况。每个工作表的参数引用包含该参数的第一个工作表上的行,要从其中提取的列编号作为索引参数。这解决了导致重新计算的任何更改的问题。现在,只有参数范围的更改才会导致重新计算,但由于某种原因,情况要糟糕得多。

现在,更改工作簿中的随机单元格不再会导致整个任务在重新计算时冻结3秒,但是更改参数范围内的相关单元格将导致每个工作表重新计算,并花费大约10秒时间。为什么这个方法要慢得多。从技术上讲,它应该和以前一样,只有在相关参数被更改时才会这样做。

是否有任何方法将其设置为:当首页上的参数发生更改时,只有受该参数影响的工作表才能重新计算?

解决方案

我考虑了一个涉及VBA的复杂解决方案,因此复制模板实例可以监视其“实例号”单元格。当它被更改时,VBA代码可以将相应的参数复制到工作表中,并在这里硬复制值。我还需要VBA监视主要参数表上的更改事件。如果发生任何更改,则必须检查列号,遍历所有模板,如果引用该实例号,则必须重新复制值。出于将VBA排除在方程之外的通常原因,我希望避免使用此解决方案,但如果无法使excel重新计算更智能地处理参数更改,则可能是必要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-27 23:06:32

这个问题是由使用Index函数将Param #值填充到实例表中引起的。

当在任何实例行上更改Param 1Main中的值时,范围将被标记为已更改。由于每个实例表在其参数1值查找中引用此范围,因此所有param 1值都被标记为已更改。然后,在所有工作表上引用Param 1的所有Param 1公式都被标记为已更改。

不知道这会对工作簿设计产生什么影响,但请考虑将索引查找更改为直接单元格引用。例1单元格D3:=Main!B2

在准备这个答案时,我设置了一个带有工作簿事件的文本,以报告工作表重新计算。

代码语言:javascript
运行
AI代码解释
复制
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    MsgBox "Calc Sheet " & Sh.Name
End Sub

我用Index、偏移量和其他方法做了一些关于各种查找的实验,但是找不到一个没有让所有的纸张重新计算的方法(不是彻底的搜索,所以其他的可能能够提供解决方案)。我发现唯一没有导致所有工作表计算的是直接单元格引用。

用于帮助设置或维护实例表参数引用的VBA例程可能是正确的.

票数 5
EN

Stack Overflow用户

发布于 2011-06-27 14:11:25

下面是一个仍然有效的旧Excel宏技巧:

选择要recalculate

  • Use的所有单元格替换函数用=

  • This替换=,只会强制这些特定的单元格到recalculate.

很容易将其记录为宏并定期执行。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6496609

复制
相关文章
ubuntu部署webserver
图片
懿曲折扇情
2022/08/24
3690
ubuntu部署webserver
Webserver推送技术
推送技术的基础思想是将浏览器主动查询信息改为server主动发送信息。server发送一批数据,浏览器显示这些数据,同一时候保证与server的连接。当server须要再次发送一批数据时,浏览器显示数据并保持连接。以后,server仍然能够发送批量数据,浏览器继续显示数据,依次类推。
全栈程序员站长
2022/07/12
4820
GoAhead WebServer移植
GoAhead  WebServer,它是一个源码免费、功能强大、可以运行在多个平台的嵌入式WebServer。
星哥玩云
2022/06/29
1.1K0
WebServer 是什么?
Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。目前最主流的三个Web服务器是Apache Nginx IIS。
PM吃瓜
2019/08/13
1.3K0
WebServer 是什么?
CobaltStrike WebServer特征分析
在处理OPTIONS请求时候,更是uri都不看,直接返回200,并且在后面会加上Allow: OPTIONS,GET,HEAD,POST
谢公子
2022/06/09
1.3K0
CobaltStrike WebServer特征分析
CobaltStrike WebServer特征分析
在处理OPTIONS请求时候,更是uri都不看,直接返回200,并且在后面会加上Allow: OPTIONS,GET,HEAD,POST
JDArmy
2022/06/06
1.1K0
CobaltStrike WebServer特征分析
GoAhead WebServer移植小结
VxWorks中自带了WebServer组件,在network components->network protocols-> network applications下选择http server即可。也可以采用rapid control for Web。这里我们介绍GoAhead WebServer,它是一个源码免费、功能强大、可以运行在多个平台的嵌入式WebServer。
星哥玩云
2022/06/29
1.3K0
一个简单的WebServer,socke
一个简单的WebServer import socket import threading body = '<h1> web server </h1>' response_params = [ 'HTTP/1.0 200 OK', 'Content-Type: text/html;charset=utf-8', 'Content-Length: {}\r\n'.format(len(body.encode())), body, ] response = '\r\n'.j
py3study
2020/01/15
4010
Webserver ,Web container, Application server的区别
1)Webserver Web container Application server的区别:
马克java社区
2021/07/07
6040
嵌入式Linux系列第15篇:WebServer使用
Server一般有两种含义,一种是表示硬件,通常是指那些具有较高计算能力,能够提供给多个用户使用的计算机。另外一种含义是表示软件程序,这种程序主要用来对外提供某些服务,比如邮件服务、数据库服务、域名服务、网页服务等。
用户2366192
2021/05/31
2.1K0
网页防篡改专题3---WebServer方式
由于waf方式并没有解决网页篡改,只是缓解而已,特别是网页防篡改功能可能导致整个站点断服的风险,让waf方式差强人意。
血狼debugeeker
2019/08/01
1.3K0
写一个简单的webserver
基于 Python3 写的极简版 webserver。用于学习 HTTP协议,及 WEB服务器 工作原理。笔者对 WEB服务器 的工作原理理解的比较粗浅,仅是基于个人的理解来写的,存在很多不足和漏洞,目的在于给大家提供一个写 webserver 的思路。项目GitHub地址:https://github.com/hanrenguang/simple-webserver。
py3study
2020/01/03
6460
使用nodejs创建一个webServer
什么是 nodejs Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。 Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome
是小张啊喂
2021/08/10
6160
使用nodejs创建一个webServer
什么是 nodejs Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。 Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome J
是小张啊喂
2021/06/23
6120
Webserver管理系列:11、注意默认的隐含共享
我们能够通过取消”Microsoft网络的文件和打印机共享”服务来阻止别人訪问我们的共享文件:
全栈程序员站长
2022/07/13
3440
Webserver管理系列:11、注意默认的隐含共享
ASP.NET CORE Linux发布工具(文件对比 只上传差异文件;自动启停WebServer命令;上传完成自动预热WebServer)
最近这几日在搞一个小网站:教你啊 ;(感兴趣的朋友可以来捧场,在这个网站上有任何消费我都可以退还) 由于更新频繁,手动更新特别麻烦,于是开发了这个小工具 用了一段时间,还是挺顺手的,同时.NET Co
liulun
2018/05/28
9690
Arduino+w5100使用1:WebServer操作步骤所用硬件
操作步骤 1.将网络扩展板与UNO插接在一起,确保引脚连接正常。 pic1:uno+w5100 shield 2.如图所示连接UNO和PC机(PWR红灯长亮,AREF左侧绿灯长亮) pic2:conn
用户1733354
2018/05/22
2.9K0
SpringBoot内置源码解析WebServer初始化过程
在上一节中 Spring Boot 初始化了 WebServer 对应的工厂类。同时,我们也知道对应 Web容器的WebServer实现类有:TomcatWebServer、JettyWebServer和UndertowWebServer。
愿天堂没有BUG
2022/10/28
6310
SpringBoot内置源码解析WebServer初始化过程
【Rust每周一库】 http - Rust下简单的webserver库
本期的每周一库给大家带来的是一个rust下的webserver库,名字很直观就叫http。
MikeLoveRust
2020/02/20
1.4K0
让gulp-webserver自动化开发服务器支持SSI语法 (include等)
在gulpfile.js中加入上面的配置代码(核心是middleware那里的connectSSI配置),我们就可以使用.shtml文件格式的html了,从而在代码中可以使用ssi的语法实现一些本来需要后端支持的功能,如:include提取公共部分,避免前端coder们头疼的大量复制粘贴工作
fastmock
2022/07/13
4180

相似问题

WebServer + AP不工作?WebServer + STA

21

如何使用Corda-Spring-Webserver实现查询过滤?

13

NodeRED在NodeJS Webserver服务器上的实现

35

magento - webserver问题

50

多线程WebServer

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文