【问题标题】:Excel VBA - Split array and return as listExcel VBA - 拆分数组并作为列表返回
【发布时间】:2014-08-06 14:30:40
【问题描述】:

我将一系列单元格地址保存为一个范围,然后我想将其作为单个单元格地址的列表返回。我似乎在网上找不到任何说这是可能的,有人知道吗?

非常感谢

到目前为止我得到了什么:

函数 AN()

将 CellRange 调暗为字符串 将 a() 调暗为字符串 将 intCount 调暗为整数

暗淡的strTemp

For Each C In ActiveCell.Offset(0, 0).Range("A1:A46")
    If C = "" Then
        C.Select
        CellRange = Range("C" & ActiveCell.Row, ActiveCell.Offset(0, -1)).Address
        a = split(CellRange)
            For intCount = LBound(a) To UBound(a)
            MsgBox a(intCount)

            Next

这给了我范围的两个极端,但不是介于两者之间的单元格。拆分似乎不起作用 - 我仍在处理它,所以请原谅那里的任何错误......这是漫长的一天!

【问题讨论】:

  • 实际上我认为您可以获取范围内的每个单元格,然后将其添加到列表中...您尝试了什么?

标签: excel vba


【解决方案1】:

以下是将范围转换为地址字符串的一种方法,以逗号分隔:

Sub dural()
    Dim r As Range, s As String
    Set r = Range("A1,B9,D13,J78,l987")
    s = r.Address(0, 0)
    MsgBox s
End Sub

您可以使用 Split() 将其变成字符串的 array

Sub dural()
    Dim r As Range, s As String
    Set r = Range("A1,B9,D13,J78,l987")
    s = r.Address(0, 0)
    MsgBox s
    ary = Split(s, ",")
End Sub

【讨论】:

  • +1 这很好。不过,我还会添加一个易于访问的链接到Split()
  • @Sifu ______________谢谢! _____________我已经修改了帖子。
  • 谢谢你 - 实际上问题是我试图返回一个没有像这样定义的范围内的所有单元格的值,而是像: Range("A1:A20") which然后,我希望将单元格列为 A1、A2、A3 等。这个可以吗?
猜你喜欢
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多