excel - 以编程方式删除所有数组公式
问题描述
我有一个工作表在“E”列中包含一个数组,该数组被分组为单独的子类别,如下图所示。如何从 VBA 中的整个“E”列中删除数组,而不是使用 Find & Select > Go to special > Current Array > Delete 手动删除它?
非常感谢任何帮助!
解决方案
删除 E 列中所有数组公式的简单解决方案是遍历列并检查每个单元格中的Range.HasArray 属性。
Option Explicit
Public Sub RemoveAllArrayFormulasInColumnE()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim LastRow As Long
LastRow = ws.Cells(ws.Rows.Count, "E").End(xlUp).Row
Dim iRow As Long
For iRow = 1 To LastRow
If ws.Cells(iRow, "E").HasArray Then
ws.Cells(iRow, "E").CurrentArray.ClearContents
End If
Next iRow
End Sub
为了让它更快,您可以在循环中跳转到您删除的当前数组的末尾。这样,您要检查的单元格就更少了。
Option Explicit
Public Sub RemoveAllArrayFormulasInColumnE_Quicker()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim LastRow As Long
LastRow = ws.Cells(ws.Rows.Count, "E").End(xlUp).Row
Dim iRow As Long
For iRow = 1 To LastRow
If ws.Cells(iRow, "E").HasArray Then
Dim JumpRow As Long
JumpRow = iRow - 1 + ws.Cells(iRow, "E").CurrentArray.Rows.Count
ws.Cells(iRow, "E").CurrentArray.ClearContents
iRow = JumpRow
End If
Next iRow
End Sub
推荐阅读
- vue.js - 刷新网页后重置商店
- python - 当系数未知(但仍然是实数)时,如何在 Python 中求解线性方程组
- python - Python Pandas read_sql 舍入和转换数字
- kotlin - 部署不是 Web 应用程序的应用程序?Kubernetes
- android - 下载管理器抛出 android.os.NetworkOnMainThreadException
- r - 为什么 pivot_longer() 仅在我在括号内指定数据框时才起作用,而不是使用管道符号?
- velo - Wix CMS - 商店收藏的动态标题
- sql - SQL 由一组 Row 派生值
- c# - LibVLC# 通过 TCP 流式传输
- python - 如何获取数组烧瓶中的元素