.Value = "" 和 .ClearContents 之间有什么区别?

2024-01-12

如果我运行以下代码

Sub Test_1()
   Cells(1, 1).ClearContents
   Cells(2, 1).Value = ""
End Sub

当我使用公式检查 Cells(1, 1) 和 Cells(2, 1) 时ISBLANK()两个结果都返回TRUE。所以我想知道:

有什么区别Cells( , ).Value = "" and Cells( , ).ClearContents?

它们本质上是一样的吗?


如果我然后运行以下代码来测试方法之间的时间差:

Sub Test_2()
Dim i As Long, j As Long
Application.ScreenUpdating = False

For j = 1 To 10
    T0 = Timer
    Call Number_Generator
    For i = 1 To 100000
        If Cells(i, 1).Value / 3 = 1 Then
            Cells(i, 2).ClearContents
           'Cells(i, 2).Value = ""
        End If
    Next i
    Cells(j, 5) = Round(Timer - T0, 2)
Next j

End Sub

Sub Number_Generator()
Dim k As Long
Application.ScreenUpdating = False

For k = 1 To 100000
    Cells(k, 2) = WorksheetFunction.RandBetween(10, 15)
Next k

End Sub

我在我的机器上得到以下运行时输出

.ClearContents  .Value = ""
4.20            4.44
4.25            3.91
4.18            3.86
4.22            3.88
4.22            3.88
4.23            3.89
4.21            3.88
4.19            3.91
4.21            3.89
4.17            3.89

根据这些结果,我们看到该方法.Value = "".ClearContents一般。总体来说这是真的吗?为什么这样?


根据我的发现,如果您的目标是简单地拥有一个空单元格并且您不想更改有关格式的任何内容,那么您应该使用 Value = vbNullString 因为这是最有效的。

“ClearContents”正在检查和更改单元格中的其他属性,例如格式和公式(从技术上讲,这是与值不同的属性)。当使用 Value = "" 时,您只更改一个属性,因此速度更快。使用 vbNullString 会提示编译器您正在使用空字符串,而使用双引号的其他方式则需要通用字符串。因为 vbNullString 提示它需要一个空字符串,所以它能够跳过一些步骤,从而获得性能提升。

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

.Value = "" 和 .ClearContents 之间有什么区别? 的相关文章

  • 你能在 Python 语法中添加新的语句吗?

    您可以添加新的语句 例如print raise with 到 Python 的语法 说 允许 mystatement Something Or new if True print example 没那么多 如果你should 而是如果可能的
  • 使用VBA复制垂直列并沿对角线粘贴

    我有一列数据 我们称之为 A 列 其中有 35 行数据 如何在此列上循环 然后将每个数据点粘贴到另一张工作表中 同时为每个循环循环增加列和行 换句话说 我寻求对角粘贴在第二张纸中 有没有一种简单的方法可以在 VBA 中执行此类操作 不要循环
  • 导出到 Excel 时如何避免“数字存储为文本”

    当我将表格从 Access 导出到 Excel 时 所有数字都显示为文本 并且单元格上有绿色箭头 有没有办法自动修复此错误 或者有另一种导出方法可以解决该错误 作为参考 这是我导出的方式 DoCmd TransferSpreadsheet
  • 大括号语法 ${var%.*} 是什么意思?

    我正在查看一些旧代码并遇到了以下语法 extractDir downloadFileName tmp 我发现搜索的唯一信息是指命令列表 但这只是一个变量 这个大括号语法在 bash 中意味着什么 在这种背景下 它是一个参数替换 http w
  • 如何高效打开巨大的excel文件

    我有一个 150MB 的单页 Excel 文件 在一台非常强大的机器上使用以下命令打开大约需要 7 分钟 using python import xlrd wb xlrd open workbook file sh wb sheet by
  • Countif 不适用于小时和/或日期

    您好 我有 3 列内的数据 A 目的地 例如洛杉矶 B 承运人 例如 Ups C 发货时间 预计 4 00 使用的时间是24小时时间 不含Am Pm 我需要进行计数才能知道在特定时间我们有多少批货物 尝试过 COUNTIF A1 A100
  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • 文本到行 VBA Excel

    我有一个电子表格 其中包含大约 4000 行数据 其中一列数据具有唯一的订单号 我希望使用 作为分隔符将其分隔 所以本质上我想要 Name Order Date Jane 123 001 111 08 15 2013 Gary 333 12
  • 如何模拟“焦点”和“打字”事件

    尝试模拟 onfocus 和打字事件 但它不起作用 Sub Login MyLogin MyPass Dim IEapp As InternetExplorer Dim IeDoc As Object Dim ieTable As Obje
  • 无法在我的抓取工具中设置超时选项以防止无限循环

    我已经使用 IE 在 vba 中编写了一个脚本 在其搜索框中的网页中启动搜索 通过点击搜索按钮根据搜索填充结果 网页加载它是searchbox几秒钟后它就会打开 但是 我的下面的脚本可以处理这个障碍并以正确的方式执行搜索 现在 我有一个稍微
  • 如何使用 Nodejs 创建 Excel 文件?

    我是一名 Nodejs 程序员 现在我有一个数据表 我想将其保存为 Excel 文件格式 我该怎么做呢 我找到了一些 Node 库 但其中大多数是 Excel 解析器而不是 Excel 编写器 我使用的是 Linux 服务器 因此需要一些可
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • VBA 中的多线程

    这里有人知道如何让VBA运行多线程吗 我正在使用 Excel 无法用 VBA 本地完成 VBA 构建在单线程单元中 获得多个线程的唯一方法是使用 VBA 之外的其他具有 COM 接口的东西构建 DLL 并从 VBA 调用它 信息 OLE 线
  • VBA 有没有办法了解未使用的变量?

    标准 VBA 编辑器中是否有工具 方法或设置来警告已被修改的变量Dim med 但没有被使用 MZ Tools http www mztools com index aspx将搜索您的代码并告诉您哪些内容未被使用 VBA的版本可以找到her
  • 使用 ObjPtr(Me) 返回自定义类实例的名称?

    我明白那个ObjPtr http support microsoft com kb 199824将返回内存中对象的地址 并且它指向一个名为 IUNKNOWN 的结构 并且其中编码了某种接口定义以公开对象结构 但我不知道如何确定一个对象的接口
  • SQL Server,插入 Excel“链接服务器”时出现“无效列名”错误

    我有一个简单的 Excel 电子表格文档 运行 Office 2013 我使用 Microsoft Office 15 0 Access 数据库引擎 OLE DB 提供程序 将其用作数据库 我可以使用 MS SQL Server Manag
  • 将包含宏的工作簿复制到不带宏的工作簿

    我能够复制工作簿 复制到所需位置 其中在后台包含宏 该副本还包含相同的宏 我的问题是我不希望这个重复的工作簿包含宏 谁能告诉怎么做吗 先感谢您 将您的工作簿保存为无宏 即简单地保存为 Excel 工作簿 对于我的 Excel 2007 这是
  • VBA 中 AND 函数如何工作?

    如果这是一个愚蠢的问题 我很抱歉 但是 Excel VBA AND 函数是否检查其中的每个条件然后继续 或者在第一个 FALSE 条件处停止而不检查其他条件 我想知道出于优化目的 但到目前为止在网上没有找到任何相关信息 提前致谢 示例 如果
  • 如何在Power Query中对N列求和

    我的数据每月都会更新 因此我尝试创建一个强大的查询表 该表将显示我创建的枢转 N 列的总和 但我似乎不知道如何在强大的查询中执行此操作 我目前有这个代码 旋转后 创建要求和的列的列表 添加索引列以限制每行 添加一列 该列对该行的列进行求和
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特

随机推荐

  • 自定义损失函数 Keras Tensorflow

    我需要一个自定义加权 MSE 损失函数 我在 keras backend 中定义了它 from keras import backend as K def weighted loss y true y pred return K mean
  • mvn 命令未被识别为内部或外部命令

    我正在得到mvn命令未被识别为内部或外部命令 我已经设置了 M2 HOME JAVA HOME 并将 M2 HOME bin 添加到路径变量中 都是系统变量 仍然遇到同样的问题 回显变量向我显示正确的路径 Maven 路径 C apache
  • 如何下载整个CRAN存储库?

    对于没有互联网的离线 Linux 机器来说 安装具有大量依赖项的 R 包是一场噩梦 我在 SE 中发现了几篇帖子 讨论如何创建本地文件夹 复制所需的包 zip 文件以及使用 install packages 进行安装 然而 查找 下载大量包
  • AngularJS:如何将数据从指令传递到控制器函数

    我正在尝试将一些数据从指令传递到函数中addTrackFromPicker在我的控制器中 scope addTrackFromPicker function message console log addTrackFromPicker me
  • 如何将成员函数指针传递给 std::function

    如何将成员函数指针传递给std function通过一个函数 我将通过比较来解释它 现场测试 http ideone com Xjxt0B template
  • 以编程方式设置 derby.system.home

    需要将 JavaDB derby db 文件的数据库和日志文件移动到部署目录中 数据库在应用程序启动目录中工作 因为 JavaDB 创建了一个名为数据库名称的文件夹 在我的例子中为 mydb 但我想将该目录移动到名为 data create
  • 在 C++ 中重新定义 template

    我一直在寻找解决我的问题的方法 但似乎找不到 我正在使用 Code Blocks 并且收到模板类的重新定义错误 这是我的 vectorAux h 文件 ifndef vectoraux h define vectoraux h includ
  • 更改控件使用的默认系统字体

    我有一个大应用程序 需要更改字体 但我不想触摸每个标签 文本字段等 如何访问 IB 和中使用的 systemFont UIFont systemFontOfSize x 我已经尝试过这个 iOS 5 对 UIAppearance 感到好奇
  • 有理由使用 is 与 as 吗? [复制]

    这个问题在这里已经有答案了 当考虑is versus as在 C 中 您可以使用任一类型来确认一种类型是否可以转换为另一种类型 using is Employee e new Manager if e is Manager var m Ma
  • JBoss EAP 6 配置单个服务器以在域模式下进行远程调试

    我有域控制器 一个主机控制器和一台服务器在同一台计算机上运行 我正在使用 IDEA 连接到远程服务器进行调试 但即使它正在运行代码 它也不会在断点处停止 我已经通过系统输出进行了验证 我已启用HOST CONTROLLER JAVA OPT
  • Electron js Electron builder mac 构建在运行时打开空白屏幕,而在使用 npm start 运行时在开发中完美运行

    我已经在 Windows 和 ubuntu 中创建了内置应用程序 该应用程序运行正常 但是当在 mac 中构建时 构建已成功创建 但它只显示白色空白屏幕 没有渲染 html 页面 而当使用 npm start 运行时 它运行得很好 我只有
  • 检查变量是否为整数[重复]

    这个问题在这里已经有答案了 如何检查变量是否为整数 如果您需要这样做 请执行 isinstance
  • React Native导入包仅在Android上

    我正在尝试仅在 Android 上导入一个包 这里是任何人都知道这是否可能的包 import ProcessingManager from react native video processing 你有两种方法 第一种方式 您可以通过创建
  • SerialDevice.FromIdAsync() 产生一个空串行端口

    当尝试连接到串行端口时 我的代码发生了一些奇怪的情况 使用时系列样品 https developer microsoft com en us windows iot win10 samples serialsample 一切正常 第一次尝试
  • 电平与边缘触发网络事件机制

    对于边缘或电平触发的某些网络事件机制 即 epoll poll select 意味着什么 简而言之 边缘触发意味着只有在检测到事件时您才会收到通知 从概念上讲 事件发生在瞬间 而电平触发意味着每当事件存在时您就会收到通知 这将是真实的 一段
  • AbortController.abort(reason),但是reason在到达fetch catch子句之前就丢失了

    我正在实施可中止的获取调用 https developer mozilla org en US docs Web API AbortController abort 中止我的页面上的提取基本上有两个原因 用户决定不再等待 AJAX 数据并单
  • mysql 连接一列中的多个值

    我需要进行一个查询 创建来自 2 个表的 3 列 这些表具有以下关系 表 1 的列 ID 与表 2 的列 ID2 相关 在表 1 中有一个名为 user 的列 在表 2 中有一个名为名称的列 可以有 1 个唯一用户 但可以有多个与该用户关联
  • ngram 的 dict 函数

    我有这样的文字 library dplyr glimpse text chr 1 11 Welcome to Wikipedia bla Discover Ekopedia the practical encyclopedia about
  • MKPolylineRenderer 上的两条彩色/自定义线

    我正在画 x 条线MKMapView 数据是从网络服务下载的 对于每条需要绘制的线 我正在创建一个MKPolyline 将其添加到overlayArray 某些叠加层有多个折线 最后通过以下方式将该叠加层添加到地图中 self mapVie
  • .Value = "" 和 .ClearContents 之间有什么区别?

    如果我运行以下代码 Sub Test 1 Cells 1 1 ClearContents Cells 2 1 Value End Sub 当我使用公式检查 Cells 1 1 和 Cells 2 1 时ISBLANK 两个结果都返回TRUE