.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 之间有什么区别? 的相关文章

  • 为什么 Haskell 类型签名声明有多个箭头?

    抱歉 这句话措辞不好 但很难描述 我想我会跳到这个例子 add Integer gt Integer gt Integer add x y x y 为什么 Integer gt Integer gt Integer 代替 Integer I
  • 我必须遵循哪些规则才能编写没有分号的有效 Javascript?

    有很多关于 我应该使用分号吗 的问题 和 分号注入是如何工作的 但我想为那些决定尽可能避免使用分号的程序员找到无 FUD 的建议 如果有人有 比如izs http izs me 或者 Bootstrap 开发者 选择在什么条件下编写不带分号
  • 同时冻结第 1 行和 A 列

    我想在 Excel 2010 中同时 冻结 第 1 行和 A 列 这可能吗 选择单元格 B2 并单击 冻结窗格 这将冻结第 1 行和 A 列 为了便于将来参考 在 Excel 中选择 冻结窗格 将冻结所选单元格上方的行以及所选单元格左侧的列
  • 循环遍历文件扩展名,excel vba

    我正在使用文件扩展名数组并循环访问工作簿文件夹 该代码正在命名 Sheet 1 name MyName 我注意到尽管 xlsm 不在数组中 它仍在打开并命名工作表 这是代码 任何人都可以看看他们是否遇到同样的问题并且能够解决它 Sub Lo
  • 什么构成“有效”C 标识符?

    根据 Zaibis 的建议 并且与我自己的相关 answer to 宏名称的有效字符是什么 https stackoverflow com a 34315237 547214 也g 不允许的标识符中的 和其他 Unicode 字符 http
  • VBA Excel 2010 - 直接从剪贴板粘贴

    我正在尝试直接从剪贴板粘贴到 Excel 文档中并进行转置 Dim DataObj As MSForms DataObject Set DataObj New MSForms DataObject DataObj GetFromClipbo
  • 使用 Office-JS 获取当前区域

    如何使用 Excel JS API 获取 ActiveCell 周围的当前区域 在 VBA 中这是 Set rng ActiveCell CurrentRegion JavaScript API 中的当前区域属性现已实现 该属性称为getS
  • Excel.Range.Find 使用长度超过 255 个字符的字符串

    我在 Excel 中存储每个包含 1023 个字符的字符串 稍后 我需要能够搜索 Excel 文件并找到某个值所在的行 我可以保证我正在查找的字符串在工作簿中的某处恰好出现一次 目前 每次尝试搜索时 我都会收到类型不匹配错误 由于查找函数的
  • 在 JavaScript 中使用科学计数法的陷阱

    这个问题是not寻求开发人员代码格式化意见 就我个人而言 我更喜欢在 JS 代码中使用科学计数法 因为我相信它更具可读性 为我 6e8比600000000 话虽这么说 我只是在寻找在 JS 中以科学记数法指定数字的潜在风险和缺点 我在野外并
  • Access 2013/2016 不支持树形视图控件,给出错误消息“用户定义的类型未定义”

    我有一个 VBA 项目 可以完美运行到 Windows 7 32 64 位 和 Office 2010 但是当我尝试在 Office 2013 或 2016 上运行它时 它不会加载树视图控件并在以下位置给出错误 私有 SelectedNod
  • 通过变量引用工作簿和工作表

    引用不同工作簿的工作表的正确语法是什么 以下代码在最后一行抛出错误 谢谢 Instantiate Workbook variables Dim mWB As Workbook master workbook Instantiate Work
  • VBA Excel 提示用户选择默认文件夹中的文件

    我想提示用户在默认文件夹中打开 Excel 文件 我不知道如何打开默认文件夹 Sub Program1 DefaultFolder C user dump FName Application GetOpenFilename If FName
  • 如何使用单元格内的十六进制颜色值突出显示单元格?

    我有一个符号和匹配的十六进制颜色的电子表格 我想用单元格内的十六进制颜色填充单元格本身 或其旁边的单元格 我读过一些有关 条件格式 的内容 我认为这就是实现的方法 我怎样才能达到我想要的结果 条件格式无法实现所有颜色 假设 Row1 包含数
  • <<-CONSTANT 是做什么的?

    return lt lt HTML li a href some link Link Title a li HTML 第一行的 这是一个异端邪说 http en wikipedia org wiki Here document Ruby h
  • 尝试将 XLSX 数据导入 R 时出现 IllegalArgumentException

    在将 xlsx 文件导入 R 时 我遇到了以下错误 mydata lt read xlsx C Users aniruddha Downloads failingExample xlsx 1 Error in jcall row ir Lo
  • Excel VBA 中的正则表达式

    我在 Excel VBA 中使用 Microsoft 正则表达式引擎 我对正则表达式很陌生 但我现在有一个正在运行的模式 我需要扩展它 但我遇到了麻烦 到目前为止 这是我的代码 Sub ImportFromDTD Dim sDTDFile
  • 获取SSAS立方体上次处理时间

    在 Excel 中 我与数据多维数据集建立 Analysis Services 连接 我希望能够通过向用户显示最后一次多维数据集处理时间发生的时间来向用户展示数据的最新情况 在 SQL Server Management Studio SS
  • 从数据集中提取唯一的产品 ID 和相应的其他列值到新工作表

    我有一个宏 可以从 A 列 中提取唯一数据 但我也希望从 A 列中的这些唯一值的其他列中获取相应的值 并且我希望它们位于不同的电子表格中 我尝试在代码中使用 Worksheet Vlookup 函数 但对于超过 70 000 行和 42 列
  • 如果我后面不写“as Something”,用“Dim”来声明变量是没有用的吗?

    例如 下面两个代码是否相同 如果我之后不写 作为整数 是否没有必要使用 Dim Sub something MyNumber 10 Worksheets 1 Range A1 MyNumber End Sub and Sub somethi
  • 在 Excel VBA 中使用 getElementsByClassName

    下面是我正在使用的代码 但我收到此错误 对象不支持此属性或方法 使用时getElementsByClassName 我正在使用的新 2 变量没有被填充 请帮助我 如果我做错了 请告诉我 Sub PopulateTasks Variable

随机推荐

  • 自定义损失函数 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