首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有关excel vba脚本的建议

有关excel vba脚本的建议
EN

Stack Overflow用户
提问于 2022-05-27 01:36:18
回答 1查看 70关注 0票数 -1

我需要关于vba脚本,宏的建议。

因此,我有一个excel表,其中有3张表名为:PredujamOSTATAK NAKNADEvlookup

PredujamOSTATAK NAKNADE包含从vlookup表中提取数据的vlookup/xlookup公式。

所有3张纸都包含4000行数据,列范围为A:Q。

对于sheet Predujam,我使用以下代码(这段代码应该只在发生更改的行中进行计算):

代码语言:javascript
运行
AI代码解释
复制
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    Set KeyCells = ThisWorkbook.Sheets("PREDUJAM").Range("A2:O5000")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        Range("A" & Range(Target.Address).Row & ": O" & Range(Target.Address).Row).Calculate

End If
End Sub

对于工作表OSTATAK ,使用相同的代码:

代码语言:javascript
运行
AI代码解释
复制
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    Set KeyCells = ThisWorkbook.Sheets("OSTATAK NAKNADE").Range("A2:O5000")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        Range("A" & Range(Target.Address).Row & ": O" & Range(Target.Address).Row).Calculate

End If
End Sub

在sheet vlookup中,我只使用以下代码来计算打开的工作表:

代码语言:javascript
运行
AI代码解释
复制
Private Sub Worksheet_Activate()
    Worksheets("vlookup").Calculate
End Sub

ThisWorkbook中,我插入了停止自动计算的代码:

代码语言:javascript
运行
AI代码解释
复制
Private Sub Workbook_Open()
    Application.Calculation = xlManual
    Application.CalculateBeforeSave = False
End Sub

基本上,我想停止所有的计算,并且只在发生更改的行中进行计算。

问题是:表仍然是滞后的,保存仍然需要20到30秒的时间来保存,在发生更改的行中进行计算也有一些延迟。

我的问题是:,我在代码中有一些可能导致落后的错误吗?如果有更好的方法来写这个,你能告诉我怎么重写吗?

我只是vba脚本的初学者,所以我需要一些建议。

谢谢!:D

EN

回答 1

Stack Overflow用户

发布于 2022-05-27 13:58:25

这不是一个恰当的答案,但是一个评论不能给我足够的空间来写这些.

作为使用VBA的人,您可能会欣赏变量的值,即

  • 计算一次,
  • 在变量中“记住”它,然后
  • 您可以多次有效地引用该变量,而不是在每次需要使用它时重新重新计算该变量(

)。

用户界面中的辅助细胞虽然受到了很多的非议,但在这方面却等同于变量,即

  • 'remembered‘在指定的单元格中计算一次,然后在需要结果的时候引用单元格,而不是让每个需要结果的公式根据第一原则重新计算。

我为什么要胡扯?假设您将工作簿计算设置为手动操作,那么您的文件显然要花费大量时间进行计算:如果您审核工作簿中的公式,那么您可能会发现至少有一些计算与几个公式相同--如果您将这些计算提取到指定的辅助单元格中,那么您可以通过只计算这些结果一次来提高性能,然后只从“旧公式”中引用这些结果,而不是在当前出现的每个公式中重复计算。

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

https://stackoverflow.com/questions/72403383

复制
相关文章
几个有用的Excel VBA脚本
最近有个朋友要处理很多的Excel数据,但是手工处理又太慢,让我帮忙处理。通过搜索和自己的编写,帮他写了几个脚本,大大提高了工作效率。其实Excel中的脚本(宏)的功能非常方便,只要熟悉了Excel的对象,做一些常见的处理,还是非常容易的。
大江小浪
2018/07/25
1.5K0
Excel中的VBA编程「建议收藏」
目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错。而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作。
全栈程序员站长
2022/08/23
6K0
Excel中的VBA编程「建议收藏」
Excel中VBA编程学习笔记(一)「建议收藏」
Form1.Width = 300 : Form1.Caption = “VB!”
全栈程序员站长
2022/09/05
9980
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.1K0
Excel VBA编程
Excel VBA事件
在Excel VBA里提供了接口,在发生这些事件之前或者之后,让使用者可以设置一段运行的程序。
xyj
2020/07/28
1.5K0
Excel VBA事件
excel vba 解密
大家好,又见面了,我是你们的朋友全栈君。Private Sub VBAPassword() ‘你要解保护的Excel文件路径 Filename = Application.GetOpenFilename(“Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt”, , “VBA激活成功教程”) If Dir(Filename) = “” Then MsgBox “没找到相关文件,清重新设置。” Exit Sub Else FileCopy Filename, Filename & “.bak” ‘备份文件。 End If Dim GetData As String * 5 Open Filename For Binary As #1 Dim CMGs As Long Dim DPBo As Long For i = 1 To LOF(1) Get #1, i, GetData If GetData = “CMG=””” Then CMGs = i If GetData = “[Host” Then DPBo = i – 2: Exit For Next If CMGs = 0 Then MsgBox “请先对VBA编码设置一个保护密码…”, 32, “提示” Exit Sub End If
全栈程序员站长
2022/09/15
9560
Python或将取代VBA,成为Excel官方脚本语言
程序员头条(ID:CoderTop) 报道 微软正考虑添加 Python 为官方的 Excel 脚本语言‍ 据外媒报道,微软正考虑添加 Python 为官方的一种 Excel 脚本语言,如果获得批准,Excel 用户将能够像目前使用 VBA 脚本一样,使用 Python 脚本与 Excel 文档、数据以及一些 Excel 核心函数进行交互。 目前为止,超过 3883 人赞同将 Python 集成到 Excel 中,成为 VBA 替代品,甚至像单元格函数 functions (=SUM(A1:A2)) 也
企鹅号小编
2018/02/08
1.4K0
Python或将取代VBA,成为Excel官方脚本语言
Excel VBA学习
学习一下,记录一下,资料来自于网络 网络代码收集一: Sub test() Dim arr, brr, i&, r&, k Set d = CreateObject("scripting.dictionary") Set d1 = CreateObject("scripting.dictionary") With Sheet1 r = .Cells(Rows.Count, 1).End(3).Row For i = 2 To r
哆哆Excel
2022/10/31
2K0
excel vba获取拼音
Function PinYin2(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As Integer, j As Integer PinMa = "a,20319,ai,20317,an,20304,ang,20295,ao,20292," PinMa = PinMa & "ba,20283,bai,20265,ban,20257,bang,20242,b
landv
2018/05/24
2.1K0
Excel VBA项目实战
前面的《Excel VBA:办公自动化》和大家分享了VBA常用的基础知识,就有同学留言问我:猴子老师,能不能出一个项目实战案例,可以把前面的知识都应用起来。
猴子数据分析
2021/04/15
1.8K1
Excel VBA事件——Worksheet
这个事件的有个比较典型的应用场景,选择改变后,将选择的单元格所在行标上颜色,也就是所谓的聚光灯:
xyj
2020/07/28
3.3K0
Excel VBA事件——Worksheet
Excel VBA事件——Workbook
这两个事件在Office2007版本之前使用应该还是比较多的,那时候还没有Ribbon菜单,菜单是下拉式的,也就是和VBA编辑器菜单是一样的。
xyj
2020/07/28
1.2K0
微软将要用Python取代VBA,成为Excel官方脚本语言!
据外媒报道,微软正考虑添加 Python 为官方的一种 Excel 脚本语言,如果获得批准,Excel 用户将能够像目前使用 VBA 脚本一样,使用 Python 脚本与 Excel 文档、数据以及一些 Excel 核心函数进行交互。 微软在上个月开启了一个针对 Excel 功能的话题,用以收集用户的反馈。随后有用户提议让 Python 成为 Excel 的一种脚本语言,不仅可以作为 VBA 的替代品,而且也可以作为字段函数(= SUM(A1:A2))的替代方案。该提议得到了众多用户的支持,得票支持率高
企鹅号小编
2018/02/08
3.9K0
微软将要用Python取代VBA,成为Excel官方脚本语言!
Excel VBA 编程练习
最近做了一个VBA的小case,用于方便excel数据的处理,主要的功能代码记录如下。
全栈程序员站长
2022/09/05
8470
Excel VBA之Find
使用,因为我们的工作表中常常在最后会写一此“备注”,我们在取数据的时候,备注与后面的东西是没用的,所以我们要取到备注以上的东西,以"金额合计"或“合计”为最后一行号
哆哆Excel
2022/10/25
2.2K0
Excel VBA对象模型
上一讲说了Range对象,这一次我们从总体方面来说一下Excel VBA的对象模型。
xyj
2020/07/28
2.4K0
Excel VBA对象模型
有关 Spring 异步的有效建议
根据目前的趋势,我发现初级到高级的开发者都使用 Spring Boot 作为他们构建软件的首选务器。事实上,它对开发人员友好,它“约定优于配置”的风格有助于开发人员只关注业务逻辑。如果他们不确定 Spring 是如何运行的,只需要查看 Spring Boot 教程就可以开始开始使用 Spring Boot,就是这么简单。
用户1516716
2019/05/07
4610
有关 Spring 异步的有效建议
如何破解Excel VBA密码
首先,如果文件格式是(.xslm),需要先打开Excel文件,另存为2003版格式(.xls)。
landv
2018/09/26
7K0
如何破解Excel VBA密码
Excel vba编程实例 源码
‘AddOne ‘AddNew ‘FourthOne Worksheets(“Sheet2”).Activate ‘SeveralRows
全栈程序员站长
2022/09/01
1.2K0
使用Excel的VBA下载文件
今天发现了个用EXCEL下载文件的实例,看起来很不错,收藏一下。 附件如下:xls 这是代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Sub downloads()     Dim i As Integer     Dim Path As String     Dim str As String     Application
用户1272546
2018/06/04
3K0

相似问题

通过VBA在Excel中查找有关数据筛选选项的建议

115

Excel VBA - RegExp规范建议

15

Excel VBA脚本

12

Excel VBA - sumproduct VBA脚本问题

25

Excel VBA脚本:如果

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档