VBA 函数避免使用 If 语句

2024-03-24

我正在构建一个非常复杂的 VBA 工作簿,运行大部分代码的问题之一是性能。我有一个内置函数,或多或少可以执行以下操作

Public Function zzz (xxx as String) as String
if xxx = "apple" then zzz = "orange"
if xxx = "appple2" then zzz = "orange2"
if xxx = "apple3" then zzz = "apple3"

等等(但用大约 30 个字符串代替)。我多次调用这个函数。有一个更好的方法吗?


几乎不。对于 30 个字符串,这应该不会太慢。

性能问题可能出现在其他地方,特别是在您直接与工作簿交互的地方。在随机尝试更新代码片段之前,尝试测量各种过程的时间。

线路多并不意味着性能慢。并非每一行都需要相同的时间来执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA 函数避免使用 If 语句 的相关文章

  • Excel VBA 中的正则表达式

    我在 Excel VBA 中使用 Microsoft 正则表达式引擎 我对正则表达式很陌生 但我现在有一个正在运行的模式 我需要扩展它 但我遇到了麻烦 到目前为止 这是我的代码 Sub ImportFromDTD Dim sDTDFile
  • 范围对象 - 为什么有时我不能使用工作表

    在这个线程中 Excel VBA 查找特定工作表上范围内的最大值 https stackoverflow com questions 31906571 excel vba find maximum value in range on spe
  • 获取SSAS立方体上次处理时间

    在 Excel 中 我与数据多维数据集建立 Analysis Services 连接 我希望能够通过向用户显示最后一次多维数据集处理时间发生的时间来向用户展示数据的最新情况 在 SQL Server Management Studio SS
  • 更新 SQL MS Access 2010

    这已经让我绞尽脑汁了 4 个小时了 我有一个名为 BreakSked 的表 我使用此按钮来使用此 sql 更新表的休息结束时间 strSQL1 UPDATE BreakSked SET BreakSked EndTime Me Text41
  • 如何使用 VBA 在 PowerPoint 中取消形状组合后按类型重新组合形状

    继我的出色回答之后上一个问题 https stackoverflow com questions 74339247 how to rename shapes within grouped groups in powerpoint with
  • VBA - 从 Internet Explorer 的框架通知栏中选择另存为

    我正在尝试通过以下方式下载另存为的文件框架通知栏的互联网浏览器 然而 经过大量搜索后 我只找到了点击解决方案save在框架通知栏上 到目前为止 我一直在尝试另存为示例站点上的文件 http www tvsubtitles net subti
  • 将 vbCrLf 应用于文本框的内容

    我在 Excel vba 项目中有一个用户窗体 在设计时它是空的 在表单初始化事件中 我有以下代码 Private Sub UserForm Initialize txtSQL value SELECT MyName ColY vbCrLf
  • 如何将新行插入范围并复制公式

    我有一个命名范围 如下所示 覆盖 A2 D3 ITEM PRICE QTY SUBTOTAL 1 10 3 30 1 5 2 10 TOTAL 40 我要使用 VBA 将新行插入到复制公式而不是值的范围中 任何提示 链接都非常感谢 这应该可
  • 更改整个工作表的背景颜色

    有没有办法将背景颜色更改为xlNone 例如整张纸 我发现你可以添加背景图片 但是如何更改工作表中所有单元格的颜色呢 您可以使用以下代码轻松完成此操作 Public Sub Demo set color WorksheetName Cell
  • 如何在 Excel 的 VBA 中求负数的立方根?

    我正在尝试在 Excel 的 VBA 中计算负数的立方根 在 Excel 工作表中取负数的立方根效果很好 2 1 3 1 25992 然而 相同的概念被编码到 VBA 中 2 1 3 gives a VALUE 将值返回到工作表时出错 我怀
  • 无法访问 VBA 中的 COM 公开方法

    我正在尝试在 VBA 中访问 COM 公开的方法 Problem 我看到所有默认方法 例如GetHashCode GetType and ToString 在 VBA 中但是not那些是 COM 接口的一部分并且专门编写为 COM 可见的
  • 空格键在 Excel VBA 编辑器中的行尾不起作用

    我将 Personal xlsb 移至新笔记本电脑 但遇到了一个奇怪的问题 空格键在行尾不起作用 除非它是完全空的行 示例 1 不起作用的示例 不工作 示例 2 工作示例 会工作 当我按空格键时 文本选择指针没有移动 但位置指示器在原始位置
  • VBA 窗体最多可以容纳多少个控件?

    我目前正在构建一个 Excel 2003 应用程序 该应用程序需要非常复杂的表单 并且担心控件数量的限制 目前它有 154 个控件 使用Me Controls Count 这应该是准确的 对吧 但可能只完成了大约三分之一 工作流程确实适合单
  • SQL - 用 varchar 替换 is null 整数

    我正在尝试用新的列替换列varchar如果 select 语句中存在空值 则为字符串 personid ISNULL personid no person 我不想更新它 只是在查询结果中将值显示为 无人 但我收到一条错误消息 将 varch
  • VBA 下标超出工作簿名称范围

    我从网上拉了一些代码来打开文件夹中的最新文件 这似乎工作得很好 然而 在代码的后面 我添加了一行附加行来设置最近打开的同一文件 尝试此操作时 工作簿 subscipt 超出范围 我认为这与语法有关 可能需要在工作簿名称中添加额外的引号 有什
  • 运行时错误:范围自动筛选上的“1004”

    我想用 VBA 做什么 使用数组过滤表并删除行 我的数组有 4 个元素 在循环中更改为有 5 个不同的集合 正在过滤的列有 5 个元素 我只想得到 1 这是一个循环 它将创建 5 个报告 每个报告根据第 29 列过滤不同的元素 如果在调试模
  • 定时器启动/停止参数

    自从加入这个社区以来 我在技能和进步方面取得了突飞猛进的进步 你们都是一个巨大的帮助 我无法提供一个计时器 该计时器已在启动和停止时实现了某些参数 我要么收到错误消息 局部变量计时器可能尚未初始化 要么没有收到错误消息 但什么也没有发生 也
  • VBA Office2010 Shapes.PasteSpecial 失败

    我在将 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题 我想将单元格 Excel 的文本复制到Powerpoint Office2003生成了一个新的文本框 文本样式与Excel中相同 现在我的代码在 Off
  • 在 Word 2010 中复制形状而不使用 .Select?

    是否可以在 Word 2010 中复制形状而无需借助 Select 根据开发中心 http msdn microsoft com en us library office ff835500 aspx the Anchor属性返回形状的锚定范
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道

随机推荐

  • Javascript keyup 无法按预期工作,它会在我没有将手指从按钮上移开的情况下执行

    我正在尝试用 javascript 创建一个简单的游戏 但我陷入了如何处理按键的困境 小例子 function keyUpEvent event alert event keyCode window addEventListener key
  • 使用 Scipy/python 寻找峰值的算法

    我有随机数据 在其中绘制了图表以查找源自零的峰值我使用了此代码 op col for i in df Speed op col append i print op col 使用 for 循环将 速度 值转换为一维数组 0 7 18 24 2
  • VB.Net 中接口中定义的属性的受保护集

    我们有一个界面 可以大大简化为 public interface IPersistable
  • CSS3 缩放变换和溢出问题:在 Safari 上隐藏

    我在 Safari 上遇到缩放变换效果和溢出问题 当我在 div 内容上使用此效果时 溢出在圆形容器上不起作用 这是我的代码 container width 100px height 100px border radius 50 backg
  • Visual Studio 2010 工具箱为空

    我有 Visual Studio 2010 Professional 但不知何故我的工具箱几乎空了 我有 报告 ReportViewer Visual Basic 电源包 a few basic items like line and ov
  • 如何在表单对话框中接收附件?

    我目前有一个机器人对话框 它请求并接收用户的附件 我想将其转换为表单对话框 因为我认为这更适合 请向我发送文档1 直到文档N 您能给我指出一个接收用户附件的表单对话框的示例吗 我读到 FormFlow 现在支持附件 https github
  • node-postgres 是否支持多个结果集

    我有一个返回多个结果集的 PostgresQL 函数 我可以毫无问题地在 net 中提取这些结果集 所以我知道我的函数可以正常工作 但我在使用 node postgres 时遇到了麻烦 结果对象返回一个包含 7 个项目的数组 该数组与返回的
  • 更改 Kubernetes docker-for-desktop 集群网络 ip

    我正在尝试在 docker for desktops 上配置 Kubernetes 并且想要更改分配给容器的默认网络 示例 默认网络是10 1 0 0 16但我想要172 16 0 0 16 I changed the docker net
  • 无法在 ViewComponent 中加载脚本

    我创建了一个ViewComponent其中显示一个Table需要一些插件来启用特定功能 在 的里面ViewComponent我尝试创建一个特定的部分 section DataTableScripts 不幸的是我发现一个ViewCompone
  • 复制和区分表单的各个部分

    更新 使用colecmc提供的代码 谢谢 我更新了codepen 我喜欢添加 date now 的方式 但我只想增量增加 我不确定如何将其应用到这个函数中 我尝试了 zer00ne 的索引增量 但我做错了 let cloneList ind
  • 在 jenkins 中完全跳过执行 shell 步骤

    我似乎无法在 Jenkins 中运行构建执行 shell 步骤 我过去曾在 Windows 上与 Hudson 合作 并且能够毫无问题地创建 shell 批处理步骤 但我似乎在这里遗漏了一些东西 这是一个全新的 jenkins 安装 我进入
  • 为什么 PHP 错误打印两次?

    Summary 令人惊讶的是我在谷歌或SO上找不到任何关于此的信息 当我在 PHP 中引发异常时 它会在我的控制台中出现两次 并包含错误消息和堆栈跟踪 第一次打印时显示 PHP Fatal error 第二次打印时仅显示 Fatal err
  • “用户正在输入消息”功能...?

    只是要指出 我指的是用 PHP jQuery 编写的聊天系统 您可以在底部看到 用户正在输入消息 我尝试了很多方法来完成它 但都失败了 我构建了自己的用 PHP MySQL Ajax jQuery 编写的聊天系统 我并不是要求某人为我编写该
  • 使用 Excel 宏 VBA 在 Excel 范围内查找行的最快方法

    我有一个 Excel 电子表格 sheet2 其中记录的数量约为 100 万条 我正在迭代这些记录 并且对于每次迭代 我都会将一行选定的列与sheet1 中大约2000 条记录的另一个范围进行比较 rangeA 1 Million rows
  • 在 Ember-CLI 内升级 Ember

    我刚刚创建了一个新的Ember CLI http www ember cli com app v0 1 12 并注意到 Ember 的引用版本是 v1 8 1 bower json 我想得到最近发布了1 10 http emberjs co
  • 在scala中使用正则表达式提取字符串

    我有一个用例 我想从 scala 的输入中提取某些字符串 我的输入字符串看起来像 asdwf ssdf as232 ss ABC xxx sdfsf234 sdaf 我想提取xxx after ABC 我尝试定义正则表达式匹配模式 val
  • WPF 控件是否在其绑定中使用弱事件?

    当我在 WPF 中使用数据绑定时 我的目标控件正在侦听绑定源上的事件 例如 我可能有一个ListView http msdn microsoft com en us library system windows controls listv
  • foreach 中对 Dictionary 的解构

    在 C 7 中是否可以在字典的 foreach 循环中使用解构 像这样的事情 var dic new Dictionary
  • Objective-C 前向调用:

    我经常做这样的事情 CoolViewController coolViewController CoolViewController alloc init self navigationController pushViewControll
  • VBA 函数避免使用 If 语句

    我正在构建一个非常复杂的 VBA 工作簿 运行大部分代码的问题之一是性能 我有一个内置函数 或多或少可以执行以下操作 Public Function zzz xxx as String as String if xxx apple then