VBA仅对文本进行排序,忽略带有公式的单元格

2024-01-11

我有一张非常大的工作表,约有 150 列,其中大部分包含公式。当我想对输入到不使用公式的单元格的数据进行排序时,它会弄乱整个工作表。 - 输入单元格不在一起

目前,我在 VBA 中的解决方案是将单元格复制到另一个(隐藏)工作表,排序并将其全部放回去。我只是觉得对于一个看似简单的任务来说这工作量太大了。有更聪明的方法来解决这个问题吗?

EDIT

qua @varocarbas 我尝试过以下代码:

Private Sub sortInputButton_Click()
    ' This sub sorts the inpur, without messing up the references [hopefully]
    Dim rowCount As Integer
    Dim colCount As Integer

    rowCount = countItems
    colCount = 180

    Dim inputRange As Range
    Set inputRange = Sheets("Input").Range("A3")
    Set inputRange = inputRange.Resize(rowCount, colCount)

    Dim targetRange As Range

    On Error Resume Next ' If range is nothing, throws an error - we don't want that
    Set targetRange = inputRange.SpecialCells(xlCellTypeConstants)
    On Error GoTo 0

    If targetRange.Cells.count > 0 Then
        Sheets("Input").Select
        targetRange.Select
        Call targetRange.Sort(Sheets("Input").Range("A3"), xlAscending)
    End If

End Sub

但这给了我错误the command you chose cannot be performed with multiple selections. Select a single range and click the command again.


您可以使用SpecialCells:

Dim targetRange As Range
On Error Resume Next 'In case of not finding any cell under the requested conditions.
Set targetRange = inputRange.SpecialCells(xlCellTypeConstants)

inputRange包括所有的细胞和targetRange只是不包含公式的那些。

UPDATE:

Dim targetRange As Range
On Error Resume Next ' If range is nothing, throws an error - we don't want that
Set targetRange = inputRange.SpecialCells(xlCellTypeConstants)
Call targetRange.Sort(targetRange.Cells(1, 1), xlAscending)
'targetRange.Sort targetRange.Cells(1, 1), xlAscending -> alternative not requiring "Call"

你不需要On Error GoTo 0, 两者都不targetRange.Cells.count (if targetRange没有细胞,On Error Resume Next会抓住它 -> 这就是我添加这一行的原因;SpecialCells有这个小限制)。你不需要任何.Select您所包含的电话。大概是什么引起了错误.Sort is Sheets("Input").Range("A3")我已将其替换为第一个单元格targetRange(不管是什么)。

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

VBA仅对文本进行排序,忽略带有公式的单元格 的相关文章

  • 无法使用 Excel JavaScript API 设置 NumberFormat

    我正在使用 Excel Javascript API 在搜索文档后 仍然找不到我想要实现的解决方案 因此 我想将所有内容设置为数字格式 文本 这样 Excel 的自动格式设置就不会与任何单元格的内容混淆 不会删除前导零或更改日期格式 文档建
  • alasql 需要已包含的 xlsx

    我正在尝试使用将数据导出到 Excel 工作表alasql and xlsx 我已遵循此处的所有准则 https github com agershun alasql wiki Xlsx https github com agershun
  • 获取给定日期的周数

    例子 DD MM YYYY 1 1 2009 should give 1 31 1 2009 should give 5 1 2 2009 should also give 5 Format 1 2 2009 ww 回报6 那么 怎样才能得
  • 这个 if 语句中怎么有太多参数

    My IF下面的声明不断错误射击 指出参数太多 为什么是这样 谁能看出下面的语句有什么错误吗 IF G7 EUR H7 1 15 L7 IF G7 USD H7 1 35 L7 IF G7 AUD H7 1 35 L7 IF G7 CAD
  • 如何使用 C# 在 MS Excel 单元格中添加数字验证

    我的目标是限制用户在 MS Excel 单元格中仅输入 1 到 100 范围内的值 我正在以编程方式生成 Excel 文件 但是当我添加上述验证时 抛出异常Exception from HRESULT 0x800A03EC 我写的代码如下
  • 使用 VBA 在 Access 表中记录计数

    我正在尝试获取表的记录数 如果计数大于 17 则创建一个新表 Dim rst As DAO Recordset strSQL Select from SKUS Set rst db OpenRecordset strSQL If rst R
  • 如何暂停特定时间? (Excel/VBA)

    我有一个 Excel 工作表 其中包含以下宏 我想每秒循环一次 但如果我能找到执行此操作的函数 那就很危险了 难道不可能吗 Sub Macro1 Macro1 Macro Do Calculate Here I want to wait f
  • 参考上一个问题:为什么 VBA 没有加载所有发票详细信息

    除了上一个问题之外 我们在销售发票上仍然存在相同的加载失败问题 下面的 VBA Json 仍然仅加载一行或第一个产品详细信息行 而不是与表中该销售发票合作的所有产品行详细信息 我们希望下面的 VBA 能够根据参数加载发票详细信息 例如 如果
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • 索引匹配不起作用

    对于下表 如果 A 列和 B 列都匹配 如何检索 C 列A 列 B 列 C 列城市 1 城市 10 本地城市 2 城市 21 远程城市 3 城市 1 远程城市 4 城市 2 本地 我尝试使用索引和匹配 但得到 N A Enter as an
  • 如果一个数字写在方括号中,例如[5],这意味着什么

    我正在开发一个旧版 VBA Excel 应用程序 并偶然发现了一些代码行 其中长字符串 从文件中读取 被切成碎片 这些行看起来像这样 Range E16 Value Mid line 49 6 显然 写 6 意味着需要 6 个字符 但我从未
  • 如何从 Outlook 的“收件人”字段中提取电子邮件地址?

    我在某种程度上一直在使用 VBA 使用以下代码 Sub ExtractEmail Dim OlApp As Outlook Application Dim Mailobject As Object Dim Email As String D
  • 从VBA中的数组批量插入到sql中

    我正在尝试在 Excel 中构建一个按钮 将所选区域上传到 SQL Server 中的表中 第一行将自动视为列标题 这件事该怎么继续下去呢 我想要的是简单和超快的上传 这是我的想法 我将选择选定的区域 然后将其保存为 txt 文件 然后对其
  • 如何获取数据透视表的 ListObject 对象?

    这个问题最初是作为answer https stackoverflow com a 21321664 2712565作者 休 西格雷夫斯 Hugh Seagraves 关于相关问题的文章 他 想要引用一个工作表上的列表对象 表格 而另一工作
  • VBA 中的求和函数

    我在 vba 中对单元格求和时遇到问题 我需要使用单元格 a b Range A1 function SUM Range Cells 2 1 Cells 3 2 但它不起作用 函数不是范围内的属性 方法 如果您想对值求和 请使用以下命令 R
  • 为什么在 Excel for Mac 中使用 VBA 的输入框不显示提示文本?

    我一直在构建一个使用 Excel 跟踪学生成绩的系统 我在 Windows 下编写了它 一切正常 但是当我在 Mac 版本的 Excel 最新版 本 15 24 我相信 上测试它时 InputBoxes 只显示输入数据的标题和文本框 不显示
  • excel使用单元格引用作为逻辑运算符并查找值

    我有一个表来查找这样的值 logical test points lt 0 1 lt 10 2 lt 20 4 gt 20 5 如果我的单元格 例如 A1 如果我的单元格 如果我的单元格 gt 20 则结果为 5 我可以为此使用多个 if
  • 将 CSV 导入 Excel - 自动“文本到列”和“插入表格”

    我想在 Excel 2010 上打开 CSV 逗号分隔 文件并自动将文本转换为列 然后选择所有活动单元格并插入带标题的表格 是否可以在我的功能区中添加一个按钮来为我完成这一切 我经常使用不同大小的 CSV 文件 我发现每次手动执行此操作有点
  • VBA 写入文件时对数值进行四舍五入 - 如何防止?

    在下面的代码中 我在确保文件编写器不会将我的数字四舍五入到一定的小数位数时遇到问题 我需要使用变体 因为有时该值是字符串 有时它是数字 我怎样才能强制它准确地写出变量是什么 例如 下面的代码可能显示 0 00038 我想显示确切的值 Dim
  • 在适用于 Windows 和 Mac 的 VBA 中指定用户文件夹的路径

    我正在编写一个使用 VBA 从 Excel 生成文件的工具 生成的文件将写入用户的 Documents 文件夹中的文件夹 如果存在 e g C Users

随机推荐

  • 如何在 iframe 中使用 css 媒体查询?

    我有一个加载 iFrame fancybox 的页面 我的 CSS 媒体查询在父页面上工作正常 但是当在 iFrame 中调用内容时 媒体查询不起作用 iFrame 中的内容有自己的样式表 如何让媒体查询在 iFrame 中工作 仅供参考
  • 如何通过配置而不是模块引导程序附加事件侦听器?

    在 ZF3 中 您通常会附加事件侦听器MvcEvent在模块的 Module php 中 如下所示
  • jquery 1.4.2 中的更改破坏了代码?

    我在使用 jquery 1 3 的页面上有此代码 但现在在 jquery 1 4 2 中 它因语法错误 无法识别的表达式而中断 document ready function span name charge click function
  • 如何判断SQL查询类型是DML还是DDL?

    如何判断SQL查询类型是DDL还是DML 数据定义语言 DDL 语句用于定义数据库结构或模式 一些例子 CREATE 在数据库中创建对象 ALTER 更改数据库的结构 DROP 从数据库中删除对象 TRUNCATE 从表中删除所有记录 包括
  • QT qmysql 驱动未加载

    我知道这个论坛上已经有很多关于这个问题的主题 但我没有设法解决我的问题 我的配置如下 QT 版本 5 14 2 mscv2017 64 编译器 mscv amd64 我的问题是我的应用程序没有加载 libmysql dll 这是我所做的 我
  • 仅具有底部边框的输入文本字段

    如何设置文本样式input字段使其只有一个border bottom像这个 预期文本Input Field Use outline 0然后设置border bottom input outline 0 border width 0 0 2p
  • Pandas 变换方法执行缓慢

    我有一个规范的熊猫transform性能似乎莫名其妙地缓慢的示例 我已阅读问答apply method https stackoverflow com questions 54432583 when should i ever want t
  • 从 Fragment 调用 DialogFragment

    我正在尝试从 Fragment 类中调用 DialogFragment 我有一个 ImageView 并且想在我设置的 ImageView 的 onClickListener 中调用我的 DialogFragment 类 我在 onClic
  • 如何使用CGAffineTransform MakeRotation?

    我想使用 Quartz 2D 绘制文本 菜单 方向错误 我希望 菜单 仍然可读并且与 X 轴成 45 度 下面是我的代码 CGContextSelectFont context Arial 12 kCGEncodingMacRoman CG
  • 如何将 YAML 文件解析/读取为 Python 对象?

    如何将 YAML 文件解析 读取为 Python 对象 例如 这个 YAML Person name XYZ 对于这个 Python 类 class Person yaml YAMLObject yaml tag Person def in
  • 如何让jquery移动控件组宽度为100%?

    我正在使用 jquery mobile 来做演示 我想让本地导航的宽度为 100 但我不知道该怎么做 代码在这里 ul class localnav li a href class ui btn active 111 a li li a h
  • 避免重复

    如何避免字符串中的重复项 在 C 中 例如 我有 a a b b c 我想得到像 a b c 这样的答案 通过使用HashSet
  • 为所有用户安装可选的桌面快捷方式

    我想做一个wix安装程序 带有optional所有用户的桌面快捷方式 可选的意思 我不能把它放在component主exe的 但在一个单独的component 这样我就可以设置一个单独的feature为快捷方式 当这样做时 wix 抱怨道
  • 避免注册表 php 中的 SQL 注入

    我的本地主机上有一个简单的注册表单 仍在测试 我想知道它是否会受到 SQL 注入攻击 Code name mysql real escape string POST name password mysql real escape strin
  • 如何在 Blazor 服务器应用程序中以编程方式注销(身份)

    在我的代码中 我处理 DbUpdateConcurrencyException 对于更新用户帐户的情况 并且用户不再存在 我想将他们注销 因为他们不再是有效用户 当然 这不是什么大问题 因为这种情况应该很少见 他们尝试访问的任何页面都不会接
  • 价值的存在量化

    我在 Scala 语言中遇到了对值的存在量化 规范 3 2 10 存在类型 x y Inner forSome val y Outer 有人有说明性的用例吗 T forSome val x S 定义为T forSome type t lt
  • docker 中的“/bin/sh: 1: [“apache2ctl”,: 未找到”

    我有一个简单的 Dockerfile FROM ubuntu RUN apt get update RUN apt get install y apache2 RUN apt get install y apache2 utils RUN
  • 你怎么解决? formattastic :label_method 不再可用

    好的 我是 ruby rails 新手 因此 为了弥补我的弱点 我的公司请了一个人来帮助我创建我们网站的骨架 他输入了 formattastic label method 这样我们就可以更改 DDLB 中显示的字段 当我将项目移动到新盒子时
  • IsMobileDevice 如何工作?

    MSDN http msdn microsoft com en us library fhhycabe aspx听起来很容易检测移动浏览器 if Request Browser IsMobileDevice true Response Re
  • VBA仅对文本进行排序,忽略带有公式的单元格

    我有一张非常大的工作表 约有 150 列 其中大部分包含公式 当我想对输入到不使用公式的单元格的数据进行排序时 它会弄乱整个工作表 输入单元格不在一起 目前 我在 VBA 中的解决方案是将单元格复制到另一个 隐藏 工作表 排序并将其全部放回