0, 1, 0) 这是我如何检查列-6ren">
gpt4 book ai didi

VBA:遍历工作表的所有列

转载 作者:行者123 更新时间:2023-12-04 20:00:14 26 4
gpt4 key购买 nike

在定义宏的工作表中,id 喜欢遍历所有列并将填充到数组中的列保存。

x = IIf(WorksheetFunction.CountA(Columns("C")) > 0, 1, 0)

这是我如何检查列是否为空的示例。如果该列已填充​​,则返回 1,如果为空,则返回 0。

我想知道的另一件事是如何将列名作为变量而不是硬编码字符串(如上所示 "C" )提供和获取。

我希望数组看起来像: ("A", "B", "C", "E", "G", "H", "I")

最佳答案

这段代码应该可以解决问题:

Dim DataCols() As String
Dim strTemp As String
Dim strCol As String
Dim i As Long

For i = 1 To ActiveSheet.UsedRange.Columns.Count
If WorksheetFunction.CountA(Columns(i)) > 0 Then
strCol = Columns(i).Address
strTemp = strTemp & Mid(strCol, 2, InStr(strCol, ":") - 2) & "|"
End If
Next i
strTemp = Left(strTemp, Len(strTemp) - 1) 'Trim trailing |

DataCols = Split(strTemp, "|")
  • For..Next循环遍历事件工作表中的所有列。
  • 使用 WorksheetFunction.CountA正如您在示例中使用的那样,然后确定当前列中是否有任何数据。
  • 如果该列包含数据,我们将获取其地址(格式为 $A:$A 的字符串)并使用 Mid(..)获取 $ 之间的字母字符和 :特点。
  • 将该列字母附加到 strTemp ,后跟一个管道 |我们稍后将使用它作为分隔符。
  • 动态数组 DataCols然后使用 Split 填充strTemp 上的函数返回一个字符串数组(由我们包含的 | 分隔)。

  • 希望这可以帮助!

    关于VBA:遍历工作表的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24426919/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com