.Value = .Value 的作用与 VBA 中的 Evaluate() 函数类似吗?

2023-12-08

考虑以下片段。它将相同的公式写入两个单元格A1 and A2

Sub Main()
    With Range("A1")
        .Formula = "=1+1"
    End With

    With Range("A2")
        .Formula = "=1+1"
        .Value = .Value
    End With
End Sub

第二with块用途.Value = .Value它计算/执行公式,因此公式从公式栏中消失。参考从公式栏中隐藏公式供参考。

.Value = .Value hides the formula from bar

现在,添加另一个 with 块

With Range("A3")
     .Formula = "=1+1"
End With
Range("A4") = Evaluate(Range("A3").Formula)

您向单元格添加公式A3那么新单元格的公式就是Evaluated()进入另一个细胞A4。结果如图

Evaluate cells formula

我认为上述情况表明.Value = .Value and Evaluate()做同样的事。

但是,下面的代码使用上述两种方法从封闭的工作簿中提取价值。我创建了一个工作簿book9.xlsm对于这个例子hello放入单元格 A1。book9.xlsm是我要拉的那个A1的值来自。考虑代码

Sub PullValue()
    With Range("A1")
        .Formula = "='C:\Users\admin\Desktop\[book9.xlsm]Sheet1'!A1"
    End With

    With Range("A2")
        .Formula = "='C:\Users\admin\Desktop\[book9.xlsm]Sheet1'!A1"
        .Value = .Value
    End With

    Range("A3").Formula = "='C:\Users\admin\Desktop\[book9.xlsm]Sheet1'!A1"
    Range("A4") = Evaluate(Range("A3").Formula)
End Sub

首先with块将公式放入单元格中A1值来自于book9.xlsm。它被执行,因此拉出的值是hello但公式栏显示实际情况.Formula这是C:\....

第二with块使用.Value = .Value如上面演示的公式评估并通过用结果替换公式来隐藏公式。

Range("A3") 与第一个相同with block.

现在 (A4)我遵循与第一个示例(本问题中的第一个片段)相同的原则Evaluate()但是这个公式这次不起作用。

请查看所有激活的单元格值和每个单元格的公式栏

results

所以现在我不能这么说.Value = .Value等于Evaluate().

的言论评价()说它可以与公式一起使用。但在我的例子中,它不起作用。

Evaluate() msdn

公式中是否用作参数Evaluate()受限制的?我一直认为 Evaluate 非常强大,但事实证明.Value = .Value实际上更加强大。尽管它们非常相似,但它们在某种程度上有所不同(但我认为这可能是我的错,因为我为此示例选择的公式可能受到限制或限制)。我想我已经展示了是什么让他们两个既相似又不同。它仍然是 50%/50%,我无法准确判断它们是否相同。如果有人能够解释这里缺少什么,那就太好了。


.value 和 Evaluate 不一样。
Excel 为每个使用的单元格维护一个值和一个公式字符串,您可以使用 Range.Value 和 Range.Formula 独立获取这两个值。
当您使用 Application.Evaluate 计算字符串时,该字符串将作为活动工作表上的公式进行计算(因此实际上最好使用 Worksheet.Evaluate 而不是 Application.Evaluate,而且速度也更快)。
使用 Rng1.Value=Rng2.Value 将值从 Rng2 复制到 Rng1 并覆盖 Rng1 的公式。
使用 Rng1.Value=Evaluate(rng2.Formula) 要求 Excel 从 rng2 检索公式字符串,对其进行评估并将结果返回到 Rng1。

Evaluate 方法的工作方式与单元格中的公式不完全相同:它有许多您需要注意的“怪癖”(包括它不适用于引用外部封闭工作簿的公式):请参阅我的博客文章了解详细信息
另外,通常使用 .Value2 而不是 .Value 更好:请参阅Value 与 Value2 的详细信息

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

.Value = .Value 的作用与 VBA 中的 Evaluate() 函数类似吗? 的相关文章

  • 如何四舍五入到一半,始终为正方向? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何实现以下舍入 0 0126083
  • 根据单元格值向用户窗体添加复选框

    我对 VBA 很陌生 只有 3 天 但我发现它非常有用且易于使用 但现在我面临一个问题 我需要制作一个具有不同复选框的用户窗体 但我需要根据工作表某一列中使用的信息自动添加它们 我相信我可以使用 For Each Next 但我真的不知道如
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • 将ADODB二进制流转换为字符串vba

    我有以下问题 我有一个存储在服务器上的 CSV 文件 但它有 3 个字符作为分隔符 我想从 URL 加载数据并使用 作为分隔符将数据填充到 Excel 页面的列中 到目前为止 我找到了使用 ADODB 记录集从网站加载文件的代码 但我无法进
  • JavaScript 测验在提出所有问题之前结束

    我现在正在学习 JavaScript 并且正在创建一个测验 我的测验运行正常 控制台中没有任何错误 但它会跳过问题 有时会在回答所有问题之前结束测验 即使给出正确答案 也会减少时间 我不太确定为什么它会这样做 因为在我看来它的编码是正确的
  • 使用 MID、LEN 和 FIND 函数提取单元格文本的某些部分?

    我有一份 Excel 作业 但我陷入了最后部分 我被要求使用 MID LEN 和 FIND 来提取单元格内的特定字符串 我非常了解每个人的工作方式 将这三者结合起来并让它们发挥作用是我遇到的问题 我需要将城市与地址的其余部分分开 然后将其显
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • 在二维范围内查找匹配的公式

    我需要一个公式来查找二维范围内的值并返回匹配单元格的坐标或单元格地址 例如 R A B C 1 John Matt Pete 2 Sara Bret Chad 3 Lila Maya Cami 我想搜索范围A1 C3 for Chad并返回
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • 如何按用户定义(例如非字母顺序)对数据框进行排序[重复]

    这个问题在这里已经有答案了 给定一个数据框dna gt dna chrom start chr2 39482 chr1 203918 chr1 198282 chrX 7839028 chr17 3874 以下代码重新排序dna by ch
  • 类函数/变量在使用之前是否必须声明?

    所以我在学习课程时偶然发现了一些对我来说相当尴尬的事情 class Nebla public int test printout return x void printout printout2 private int x y void p
  • numpy NPV 和 Excel NPV 有区别吗?

    我的 Excel 中有一行包含 11 个值 TotalSavings 0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 贴现率为 0 08 我在 Excel 中使用 计算 NPVNPV
  • VBA在多个文件夹中搜索特定子文件夹并移动其中的所有文件

    你能帮助我吗 我想要一个宏vba来搜索SPECIFIC例如 所有存在并移动其文件的文件夹和子文件夹之间的子文件夹 Xfolder P Desktop Folder1 subfolder SUBFOLDER1 Xfolder 我正在使用 VB
  • 我应该在构造函数中调用成员函数吗

    我知道这是一个相当简单的问题 并且还取决于代码的其余部分 但我对经验法则更感兴趣 那么什么情况下适合在构造函数中调用函数呢 更可取的是 ClassA obj1 obj1 memFun or ClassA obj1 where constru
  • 为什么将模块级代码放入函数中然后调用该函数在Python中速度更快?

    在亚历克斯 马尔泰利的回应中使 Python 脚本面向对象 https stackoverflow com questions 1813117 making a python script object oriented 他提到在 Pyth
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • PowerShell:函数没有正确的返回值

    我编写了一个 powershell 脚本来比较两个文件夹的内容 Dir1 d TEMP Dir1 Dir2 d TEMP Dir2 function Test Diff Dir1 Dir2 fileList1 Get ChildItem D
  • Excel 2013 数据透视表不会更改当前页面,除非手动导航到

    我们有一小段 VBA 代码 多年来一直完美运行 本质上是 Me PivotTables APivot PivotFields AField CurrentPage Some text 这种方法一直有效 直到 Excel 2013 该行将失败
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航

随机推荐

  • 为什么 Node.js 将传入数据分成块?

    Node js 中的以下代码不会将所有传入数据记录在括号内 而是将数据分成块 例如 如果传入数据是 ABCDEF XYZ 它将数据记录为 ABC DEF XYZ 而不是 ABCDEF XYZ 当然数据要大得多 字母表只是一个例子 我应该如何
  • 为什么Java I/O中的一个字节可以代表一个字符?

    为什么Java I O中的一个字节可以代表一个字符 我看到这些字符只是 ASCII 那么它就不是动态的了 对吧 对此有什么解释吗 字节流和字符流有什么区别 字节不是字符 独自一人 他们甚至无法代表人物 从计算角度来说 字符 是数字代码 或代
  • 将可执行文件链接到的所有 dll 复制到可执行目录

    这个问题询问类似的问题 但只需要手动指定要复制的dll 我的问题是 有没有一种方法可以简单地让 CMake 复制链接到可执行库的所有 dll 而不需要手动告诉 CMake 要复制哪些文件 有时 CMake 更了解是否需要 dll 例如 在安
  • 使用 C# Parallel.ForEach 循环处理 SFTP 文件不处理下载

    我正在使用 Renci SSH NET 软件包版本 2016 我正在从外部服务器下载文件 我通常每 6 秒就能下载一个文件 当你有数千个文件时 这很糟糕 我最近尝试改变foreach循环到Parallel ForEach 这样做将文件下载时
  • Powershell 中的 Lambda 表达式

    我有一段 C 代码 它使用 lambda 表达式将委托传递给方法 我怎样才能在 PowerShell 中实现这一目标 例如 以下是 C 代码 string input string pattern
  • 如何将 perfmon 插件与 jmeter-maven-plugin 一起使用?

    我目前正在开发一个基于 jmeter 的项目 使用 jmeter maven 插件运行测试 到目前为止 一切正常 直到我添加了 perfmon 插件 添加它们以使用 jmeter UI 获取每秒事务数和随时间变化的响应时间 按照说明进行操作
  • 如何解决 IE 不支持 :after 的问题?

    我有一堆清单 ul li class first Item 1 li li Item 2 li li class last Item 3 li ul 风格与 li after content li last after content 这一
  • 如何在 C++ 中编译位于不同文件中的模板?

    当我将所有源代码放入一个文件中时 程序就成功构建了 但是 当我将它们拆分为头文件时 出现链接错误 我的程序的主要内容 C Class Templates cpp include
  • 仅在 Android 中首次启动时显示设置屏幕

    我正在制作一个 Android 应用程序 但我不知道如何使设置屏幕仅在第一次出现 这就是应用程序的工作方式 用户在安装后启动应用程序并显示欢迎 设置屏幕 一旦用户完成设置 设置屏幕将永远不会再次出现 除非用户重新安装应用程序 我怎样才能做到
  • iOS 照片权限要求第二次

    我目前正在使用 aasset 这是第一次请求许可 如果想第二次或每次用户阻止它时弹出权限 这怎么可能 没有办法第二次显示权限提示 处理权限提示的最好方法是在触发权限提示之前向用户解释 阅读 AssetsLibrary框架中的call方法 如
  • 如何将多个(excel)文件读入R? [复制]

    这个问题在这里已经有答案了 我有数百个中等大小的 Excel 文件 5000 到 50 0000 行 大约 100 列 要加载到 R 中 它们具有明确定义的命名模式 例如x 1 xlsx x 2 xlsx etc 如何以最快 最直接的方式将
  • ADT 插件更新后使用某种库的所有 Android 项目都会抛出 ClassNotFoundException [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我正在使用 Eclipse 我在之后就面临这个问题谷歌
  • 为什么空格会影响相等字符串的同一性比较? [复制]

    这个问题在这里已经有答案了 我注意到 向相同的字符串添加空格会使它们使用时比较不相等is 而非空间版本比较相等 a abc b abc a is b outputs True a abc abc b abc abc a is b outpu
  • 更改 UINavigationItem 颜色

    我需要为 UINavigationBar 按钮设置自定义颜色 我正在做以下事情 RGB func 是一个定义 void viewWillAppear BOOL animated for UIView view in self navigat
  • Windows Phone 7 中的样式触发器

    我想使用 Windows Phone 7 中的样式触发器来根据布尔变量更改图像的源 我想做这样的事情
  • 使用 Javascript 关闭所有弹出窗口

    有谁知道如何在Javascript中关闭所有弹出窗口 由javascript弹出的窗口 Example 单击打开 3 个新窗口 按钮 并使用 window open 来 打开所有 3 个新窗口 单击一个按钮并关闭所有 3 个按钮 一起弹出窗
  • 右值引用和左值引用有什么区别? (代码生成)

    从较低级别的角度来看 r 值参考是什么样的 我似乎无法理解它 我可以查看从右值引用与左值引用生成的代码 等效的 C 或 x86 x64 示例吗 例如 这个构造会是什么样子 我们暂时假设没有复制省略 vector
  • Request.IsAuthenticated 始终返回 false

    我正在努力向我正在构建的站点添加登录功能 但登录后 Request IsAuthenticated 属性始终返回 true 我搜索了这个错误并一遍又一遍地找到相同的答案 但这些解决方案对我不起作用 来自 AccountController
  • Android:在 ConstraintLayout 中保留全宽和未定义高度 ImageView 的比例?

    In a ConstraintLayout an ImageView与其父级绑定的方式如下 它的左侧绑定到屏幕的左侧 它的右侧绑定到屏幕的右侧 它的顶部绑定到小部件的底部 它的底边绑定到屏幕的底边 Thus my ImageView看起来是
  • .Value = .Value 的作用与 VBA 中的 Evaluate() 函数类似吗?

    考虑以下片段 它将相同的公式写入两个单元格A1 and A2 Sub Main With Range A1 Formula 1 1 End With With Range A2 Formula 1 1 Value Value End Wit